簡體   English   中英

“結構”從何而來?

[英]Where does “struct” come from?

我試圖更深入地了解值類型和System.ValueType

我的問題是當我右鍵單擊int並單擊“轉到定義”時,我轉到位於mscorlib.dll中的System.Int32

現在,當我右鍵單擊struct或(枚舉)並單擊“轉到定義”時,將顯示錯誤:“無法導航至'struct'”

“結構”或“枚舉”從何而來?

System.Int32是一種類型。

structenum都是關鍵字,而不是類型。

至於System.ValueType ,請看一下文檔:

MSDN-ValueType類(系統)

它明確指出您不能創建從ValueType繼承的類。 相反,您必須使用通過諸如structenum這樣的關鍵字從類隱式繼承的類型之一。

intSystem.Int32類型的別名,因此具有可瀏覽到的類型定義。

structenum不對應於類型; 它們只是C#語言中的關鍵字。

有趣的是,枚舉引用了System.Enum ,所有enum類型都從此派生。 但是,用法是如此專業,編譯器不允許您直接從中派生。

struct類型通過值而不是引用傳遞-就像在C#中傳遞非指針變量一樣。 如果您不了解指針,那么何時使用structclass的細微差別就相當復雜,但是基本上所有值傳遞都是副本,而不是對原始副本的引用。

enum是一個類, enum包含有限的條目或標志列表,並且具有上述System.Emum中的一些幫助方法。 這對於諸如

enum direction { Up, Down, Left, Right }

否則,請參見類和結構以及枚舉類型

暫無
暫無

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

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