มีคนอธิบายได้ไหมว่าทำไมสิ่งนี้ถึงใช้งานได้ใน 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'
ไม่ใช่ว่าฉันไม่สามารถใช้รูปแบบเดิมได้ แต่รูปแบบที่สองนั้นสอดคล้องกับส่วนที่เหลือของรหัสของฉันมากกว่า