Bisakah seseorang menjelaskan mengapa ini bekerja di C # .NET 2.0:
Nullable<DateTime> foo;
if (true)
foo = null;
else
foo = new DateTime(0);
... tapi ini tidak:
Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);
Bentuk terakhir memberi saya kesalahan kompilasi "Jenis ekspresi kondisional tidak dapat ditentukan karena tidak ada konversi implisit antara '<null>' dan 'System.DateTime'."
Bukannya saya tidak bisa menggunakan yang pertama, tetapi gaya kedua lebih konsisten dengan sisa kode saya.