Khi bạn viết date.Year + ""
nó sẽ được biên soạn như một lời kêu gọi string.Concat(object, object)
:
String.Concat(date.Year, "")
Bên trong, phương pháp Concat
sẽ gọi ToString
trên từng đối tượng (không null).
Cả hai cách tiếp cận sẽ ném một số NullReferenceException
nếu date
là null
. Nhưng bạn đã nói date
là loại DateTime
. DateTime
là cấu trúc và do đó không thể là rỗng.
Nếu date
là loại DateTime?
và muốn trở về một chuỗi rỗng nếu ngày là null thì bạn có thể sử dụng này:
date.HasValue ? date.Value.Year.ToString() : ""
Nguồn
2011-12-07 09:22:49
'date.Year +" "' hoạt động ngay cả khi ngày là null? Có thật không? Và làm thế nào có thể một DateTime được null ở nơi đầu tiên? –
Điều gì Mark đã nói, làm thế nào là nó null? Đó không phải là chỉ có thể nếu nó được tuyên bố là vô giá trị? – dbasnett