有谁能告诉我为什么这不会编译?
DateTime? completedDT;
bool completed = false;
completedDT= completed ? DateTime.Now : null;
我原以为在写入可以为空的对象(DateTime?
)时,使用null是可以接受的。相反,我得到了这个错误:
错误19无法确定条件表达式的类型,因为'System.DateTime'和'null'之间没有隐式转换
答案 0 :(得分:1)
有几种选择:
completedDT= completed ? DateTime.Now : new DateTime?();
completedDT= completed ? DateTime.Now : (DateTime?)null;
completedDT= completed ? DateTime.Now : default(DateTime?);
感谢C.Evenhuis提供default()
选项。