2010-09-03 26 views

Trả lời

40

DateTime là một value type, trong đó, giống như intdouble, không có giá trị có ý nghĩa null.

Trong VB.NET, bạn có thể viết này:

Dim d As DateTime = Nothing 

Nhưng tất cả điều này là để thiết lập d đến mặc định giá trịDateTime. Trong C# mã tương đương sẽ là:

DateTime d = default(DateTime); 

... tương đương với DateTime.MinValue.

Điều đó nói rằng, có loại Nullable<T>, được sử dụng để cung cấp giá trị null cho bất kỳ loại giá trị nào T. Tên viết tắt của Nullable<DateTime> trong C# là DateTime?.

+0

giải thích rõ ràng và chính xác ... – Sandeep

4
DateTime? myDate = null; 

Dấu chấm hỏi sẽ cung cấp cho bạn một loại không có giá trị. Cái có thể được đặt thành giá trị gốc của nó hoặc là null.

DateTime chính nó là một loại giá trị. Nó không thể rỗng.

2

Không, cấu trúc của nó không phải là một lớp. Hoặc là biến nó thành một loại không có giá trị, ví dụ: System.DateTime? myValue; hoặc sử dụng System.DateTime.MinValue làm một sentinel.

+0

Hãy cẩn thận với từ ngữ của bạn. Nullable cũng là một cấu trúc và có thể chứa một giá trị rỗng. –

4

Không, bạn không thể cho DateTime là loại giá trị.

Bạn có thể muốn nhìn vào Nullable<DateTime> dù (hoặc DateTime? Trong ngắn hạn)

2

Không - DateTime là cấu trúc trong C# và cấu trúc (loại giá trị) không được rỗng.

Bạn có thể, tuy nhiên, sử dụng Nullable<DateTime>.

2

thường DateTime không thể được null, vì là một loại giá trị, nhưng sử dụng các nhà điều hành nullable giới thiệu trong C# 2, bạn có thể thực hiện điều này

Các vấn đề liên quan