RJP*_*RJP 176 c# datetime default
是否有理由选择其中一个而不是另一个?
DateTime myDate = new DateTime();
Run Code Online (Sandbox Code Playgroud)
要么
DateTime myDate = default(DateTime);
Run Code Online (Sandbox Code Playgroud)
两者都是平等的1/1/0001 12:00:00 AM.
Ser*_*rvy 185
不,他们是完全相同的.
default(),对于任何值类型(DateTime是值类型)将始终调用无参数构造函数.
小智 21
如果要在方法中使用DateTime参数的默认值,则只能使用default(DateTime).
以下行不会编译:
private void MyMethod(DateTime syncedTime = DateTime.MinValue)
Run Code Online (Sandbox Code Playgroud)
这行将编译:
private void MyMethod(DateTime syncedTime = default(DateTime))
Run Code Online (Sandbox Code Playgroud)
Ben*_*n C 16
答案是不.请记住,在这两种情况下,mdDate.Kind = DateTimeKind.Unspecified.
因此,最好执行以下操作:
DateTime myDate = new DateTime(1, 1, 1, 0, 0, 0, DateTimeKind.Utc);
Run Code Online (Sandbox Code Playgroud)
该myDate.Kind属性是只读的,因此在调用构造函数后无法更改.