[英]can we convert value type to referance type in c# or .net supported language
[英]Can we convert “every” value type into reference type in c#?
我知道我們通常可以將值類型轉換為引用類型(例如Object
),但是我想知道每種值類型是否都正確。
有沒有我們不能裝在引用類型中的特殊值類型?
裝箱是您要尋找的關鍵字,但嚴格從.NET角度來看, 沒有, 對於幾乎所有目的,沒有任何不能強制轉換為Object
值類型(引用類型)。
編輯:正如@PetSerAl在對該問題的注釋中指出的,在這里 ,還有更多內容:
例如,特殊的ArgIterator
類型包含一個指向本地堆棧的指針-如果允許其離開當前范圍,它將變得毫無意義(甚至是危險的) TypedReference
和RuntimeArgumentHandle
。 您可以在例如ECMA 335規范第I.8.2.1.1節(托管指針和相關類型)中找到有關此信息的更多信息。
至少有兩種不能裝箱的特殊值類型: TypedReference
和ArgIterator
。 您也不能輸入類型為此類的字段( CS0610 ),也不能具有此類型的數組( CS0611 )。 因此,有效地,這種類型的變量只允許放在堆棧中。
從技術上講,可空值類型也不能裝箱為其類型的實例,因為它們將轉換為其基礎類型的實例或為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.