有人可以解释为什么这在 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.DateTime' 之间没有隐式转换。”
不是我不能使用前者,而是第二种风格更符合我的其余代码。