新的DateTime()与默认(DateTime)

有没有理由select其中之一?

DateTime myDate = new DateTime(); 

要么

 DateTime myDate = default(DateTime); 

他们都是平等的1/1/0001 12:00:00 AM

不,他们是一样的。

对于任何值types( DateTime是一个值typesdefault()default()将始终调用无参数构造函数。

如果要在方法中使用DateTime参数的默认值,则只能使用默认值(DateTime)。

下面这行不会编译:

  private void MyMethod(DateTime syncedTime = DateTime.MinValue) 

这一行将编译:

  private void MyMethod(DateTime syncedTime = default(DateTime)) 

答案是不。 请记住,在这两种情况下, mdDate.Kind = DateTimeKind.Unspecified

因此可能会更好地做到以下几点:

 DateTime myDate = new DateTime(1, 1, 1, 0, 0, 0, DateTimeKind.Utc); 

myDate.Kind属性是只读的,因此在调用构造函数后不能更改。