5
?のnull許容型の問題:条件演算子
これが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番目のスタイルは他のコードとより一貫しています。