Convert.ToDateTime(bool)有什么意义?

Pau*_*lor 20 .net c# datetime

我昨晚正在为我正在进行的系统做一些类型转换例程.其中一个转换涉及将字符串值转换为DateTime等效值.

执行此操作时,我注意到Convert.ToDateTime()方法有一个接受布尔参数的重载.

第一个问题?在什么情况下这可能有用?

我进一步尝试在QuickWatch中执行该方法.无论哪种方式(true或false),例程都返回InvalidCastException.

第二个问题?为什么这种方法在这里呢?

编辑

伙计们,谢谢你的回答.从合同的角度来看,我可以看出它多么合理,但核心框架包括以下方法似乎很奇怪:

  • 永远不会工作
  • 更糟糕的是,当有人试图调用它时,实际上会抛出异常.

这有点像制造一辆装有控制装置的汽车,可以在使用时主动阻止您的车辆工作.

Kla*_*sen 6

这是有道理的,因为它ToDateTimeIConvertible实现的接口的一部分bool.如果你看反射器,你会看到它抛出一个InvalidCastException.

更新(来自Convert):

public static DateTime ToDateTime(bool value)
{
    return ((IConvertible) value).ToDateTime(null);
}
Run Code Online (Sandbox Code Playgroud)

  • 它只是将编译时错误转换为运行时错误. (5认同)
  • 但是:这是一个静态方法,不能成为接口的一部分.所以这根本不符合逻辑. (3认同)
  • 仍然:没有用于实现不应该调用的静态方法.静态方法由编译器静态绑定,这里没有动态,这个方法没用. (3认同)