为什么未初始化的DateTime结构告诉我它是星期一

Mar*_*ijn 2 vb.net

我有一个我使用的DateTime结构,sombody注释掉它创建的部分(但未声明)当我使用它时,myDate.DayOfWeek == DayOfWeek.Monday返回true.

如果创建它的部分被注释掉了,它怎么能告诉我它是星期一,而不是抛出一些例外?

Mat*_*nen 5

DateTime是值类型(a struct),因此它始终具有值.它不能null像参考类型.如果尚未分配值类型的变量,则会根据类型将其初始化为某个默认值.DateTime恰好是.NET使用的日历中的星期一的默认值.

当然,过去日历已经多次改变,过去几百年以来应用我们当前的日历是行不通的,但对于.NET来说,这是一个星期一.