Ai đó có thể giải thích lý do tại sao điều này hoạt động trong C # .NET 2.0:
Nullable<DateTime> foo;
if (true)
foo = null;
else
foo = new DateTime(0);
... nhưng điều này không:
Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);
Biểu mẫu sau cho tôi một lỗi biên dịch "Loại biểu thức điều kiện có thể được xác định do không có chuyển đổi ngầm giữa '<null>' và 'System.DateTime'."
Không phải là tôi không thể sử dụng cái trước, nhưng kiểu thứ hai phù hợp hơn với phần còn lại của mã của tôi.