新的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
属性是只读的,因此在调用构造函数后不能更改。