簡體   English   中英

為什么C#將整數類型實現為結構而不是基本類型?

[英]Why C# implements integer type as a struct and not as a primitive type?

看一下如何將int類型實現為C#中System.Int32 struct ,我想知道為什么這樣實現(通過將它包裝成結構類型),而不選擇像Java那樣的原始類型實現?

結構中的額外包裝不會產生額外的性能命中嗎?

有沒有“包裝”的struct會在這里。 出於所有實際目的, System.Int32 struct 內置的基本類型,在編譯器識別它們的意義上,並在處理基元類型的表達式時生成特殊指令。 包裝int (或任何其他struct )的唯一位置是在裝箱轉換期間,當您想要將int傳遞給接受對象的API時,這是必需的。

Java和C#處理原語的最大區別在於,您可以在用戶定義的struct類型可以使用的地方使用C#原語,最值得注意的是,在C#泛型參數中,而Java將原語視為完全獨立的類型組。

暫無
暫無

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

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