簡體   English   中英

我們可以在C#中將“每個”值類型轉換為引用類型嗎?

[英]Can we convert “every” value type into reference type in c#?

我知道我們通常可以將值類型轉換為引用類型(例如Object ),但是我想知道每種值類型是否都正確。

有沒有我們不能裝在引用類型中的特殊值類型?

裝箱是您要尋找的關鍵字,但嚴格從.NET角度來看, 沒有, 對於幾乎所有目的,沒有任何不能強制轉換為Object值類型(引用類型)。

編輯:正如@PetSerAl在對該問題的注釋中指出的,在這里 ,還有更多內容:

例如,特殊的ArgIterator類型包含一個指向本地堆棧的指針-如果允許其離開當前范圍,它將變得毫無意義(甚至是危險的) TypedReferenceRuntimeArgumentHandle 您可以在例如ECMA 335規范第I.8.2.1.1節(托管指針和相關類型)中找到有關此信息的更多信息。

至少有兩種不能裝箱的特殊值類型: TypedReferenceArgIterator 您也不能輸入類型為此類的字段( CS0610 ),也不能具有此類型的數組( CS0611 )。 因此,有效地,這種類型的變量只允許放在堆棧中。

從技術上講,可空值類型也不能裝箱為其類型的實例,因為它們將轉換為其基礎類型的實例或為空。

暫無
暫無

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

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