これが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'の間の暗黙的な変換がないため、条件式のタイプを判別できません。」というコンパイルエラーが発生します。
前者は使用できないというわけではありませんが、2番目のスタイルは他のコードとより一貫しています。