[英]Where does “struct” come from?
我試圖更深入地了解值類型和System.ValueType
我的問題是當我右鍵單擊int並單擊“轉到定義”時,我轉到位於mscorlib.dll中的System.Int32
現在,當我右鍵單擊struct或(枚舉)並單擊“轉到定義”時,將顯示錯誤:“無法導航至'struct'”
“結構”或“枚舉”從何而來?
System.Int32
是一種類型。
struct
和enum
都是關鍵字,而不是類型。
至於System.ValueType
,請看一下文檔:
它明確指出您不能創建從ValueType
繼承的類。 相反,您必須使用通過諸如struct
和enum
這樣的關鍵字從類隱式繼承的類型之一。
int
是System.Int32
類型的別名,因此具有可瀏覽到的類型定義。
struct
和enum
不對應於類型; 它們只是C#語言中的關鍵字。
有趣的是,枚舉引用了System.Enum ,所有enum
類型都從此派生。 但是,用法是如此專業,編譯器不允許您直接從中派生。
struct
類型通過值而不是引用傳遞-就像在C#中傳遞非指針變量一樣。 如果您不了解指針,那么何時使用struct
或class
的細微差別就相當復雜,但是基本上所有值傳遞都是副本,而不是對原始副本的引用。
enum
是一個類, enum
包含有限的條目或標志列表,並且具有上述System.Emum中的一些幫助方法。 這對於諸如
enum direction { Up, Down, Left, Right }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.