最佳答案
有没有人能解释一下为什么这个在 C # .NET 2.0中有效:
Nullable<DateTime> foo;
if (true)
foo = null;
else
foo = new DateTime(0);
但这个不是:
Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);
后一种形式给我一个编译错误“无法确定条件表达式的类型,因为在‘ < null >’和‘ System’之间没有隐式转换。日期时间’”
并不是说我不能使用前者,而是第二种风格与我的其余代码更加一致。