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

时间:2010-09-20 14:57:30

标签: vb.net

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

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

2 个答案:

答案 0 :(得分:5)

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

当然,过去日历已经多次改变,过去使用我们当前的日历超过几百年只是不起作用,但对于.NET来说,这是一个星期一。

答案 1 :(得分:4)

DateTime是一个结构,意味着它必须具有某种默认值。 DateTime的默认值为DateTime.MinValue,即0001年1月1日,即星期一。