2009-07-28 86 views

回答

17

DateTime?可以爲空,而不是DateTime

+0

即可空 - http://msdn.microsoft.com/en-us/library/1t3y8s4s(VS.80).aspx – 2009-07-28 11:17:50

+2

其實, 'DateTime?'本身不是null,因爲它也是一個值類型。 'Nullable '暴露了'HasValue'屬性,編譯器使用它來僞裝一個值爲'Nullable '的值類型的引用類型語義。 – 2009-07-28 11:41:29

19

問號之後的值類型是用於Nullable<T>結構的簡化符號。

表示一個對象,其底層 類型爲值類型也可以是 像引用類型分配空值。

Nullable<T>結構允許您將值類型(如DateTimeInt32Guid,等)並將其看作在某些方面引用類型。它確實有點複雜(在任務,解除操作員和其他方面),因此我建議您閱讀Nullable Types (C# Programming Guide)及其相關文章。

可爲空的類型是 System.Nullable結構的實例。可以爲空的 類型可以表示其基礎值類型的 值的正常範圍, 加上附加的空值。對於 例如,Nullable<Int32>,發音 「的Int32的可空,」可以被分配 任何值-2147483648到2147483647 ,或者它可以被分配 空值。 A Nullable<bool>可以是 賦值爲真或假,或者 爲空。將數值和布爾類型賦值爲 的能力是 在處理 數據庫和其他數據類型 時特別有用,該數據類型包含可能不會被 賦值的元素。例如,數據庫中的 布爾型字段可以存儲 的值true或false,或者可能未定義爲 。

2

DateTime?是另一種寫可空的方式<DateTime>。我建議你閱讀這更多地瞭解可空:

Nullable(T) Structure

相關問題