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