条件运算符与DateTime?不会编译

时间:2014-10-03 14:34:01

标签: c# .net datetime nullable conditional-operator

有谁能告诉我为什么这不会编译?

DateTime? completedDT;
bool completed = false;
completedDT= completed ? DateTime.Now : null;

我原以为在写入可以为空的对象(DateTime?)时,使用null是可以接受的。相反,我得到了这个错误:

  

错误19无法确定条件表达式的类型,因为'System.DateTime'和'null'之间没有隐式转换

1 个答案:

答案 0 :(得分:1)

有几种选择:

completedDT= completed ? DateTime.Now : new DateTime?();
completedDT= completed ? DateTime.Now : (DateTime?)null;
completedDT= completed ? DateTime.Now : default(DateTime?);

感谢C.Evenhuis提供default()选项。