【发布时间】:2016-07-17 22:40:24
【问题描述】:
我有两个与日期时间分配有关的问题
DateTime? y = 1 == 1 ? null: DateTime.MaxValue;
DateTime? y = null; // assignment works as expected
- 为什么第一次赋值会出现
null和DateTime?之间的类型转换错误 -
在 c# 中,
DateTime?的空赋值是首选方式。DateTime? x = default(DateTime?); //prints null on console DateTime? x = null; // prints null on console DateTime? x = DateTime.MinValue; //print 01/01/0001
【问题讨论】:
-
您需要将
DateTime.MaxValue转换为(DateTime?)或转换为null。DateTime和null之间没有转换,因为DateTime不可为空。 -
default(),对于任何值类型(DateTime 是一个值类型),总是会调用无参数构造函数。在这种情况下,无参数构造函数没有要分配的值,因此您在控制台中看到 null
标签: c# .net datetime variable-assignment nullable