簡體   English   中英

可空類型是引用類型嗎?

[英]Are nullable types reference types?

當我將int聲明為可空時

int? i=null;

i在這里成為參考類型嗎?

不,可空是一個結構。 發生的事情是可空結構有兩個值:

  1. 數據類型的值( intint?DateTimeDateTime?等)。
  2. 一個布爾值,用於指示是否已設置數據類型值。 HasValue是酒店。)

設置數據類型的值時,struct將HasValue更改為true。

可空類型(C#編程指南)

Nullable類型(C#編程指南)

可空類型是System.Nullable結構的實例。

可空類型表示可以賦值為null的值類型變量。 您無法基於引用類型創建可空類型。 (引用類型已經支持null值。)

所以,不,他們不是參考類型。

可空類型既不是值類型也不是引用類型。 它們更像是值類型,但具有一些引用類型的屬性。

當然,可以為null的類型可以設置為null 此外,可空類型不能滿足通用struct約束。 此外,當您將HasValue等於false可空類型打包時,您將獲得null指針而不是盒裝可空類型(取消裝箱時存在類似情況)。

這些屬性使可空類型成為非值類型,但它們肯定也不是引用類型。 它們是他們自己特殊的可空值類型。

不,Nullable類型實際上是一個結構。 運行時將智能地為您設置空值,給出引用類型的外觀,當它不是....

可空類型不能是引用類型。

http://msdn.microsoft.com/en-us/library/2cf62fcy.aspx

您不應該將引用類型設置為可空類型,因為您可以在其位置傳遞null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM