類和結構的區別?

2021-05-21 13:49:06 字數 460 閱讀 2680

類:

類是引用型別在堆上分配,類的例項進行賦值只是複製了引用,都指向同一段實際物件分配的記憶體

類有構造和析構函式

類可以繼承和被繼承

結構:結構是值型別在棧上分配(雖然棧的訪問速度比較堆要快,但棧的資源有限放),結構的賦值將分配產生乙個新的物件。

結構沒有建構函式,但可以新增。結構沒有析構函式

結構不可以繼承自另乙個結構或被繼承,但和類一樣可以繼承自介面

示例:根據以上比較,我們可以得出一些輕量級的物件最好使用結構,但資料量大或有複雜處理邏輯物件最好使用類。

如:geoemtry(gis 裡的乙個概論,在 ogc 標準裡有定義) 最好使用類,而 geometry 中點的成員最好使用結構

結果:x: 1, y: 2, z: 3

x: 4, y: 5, z: 6

x: 7, y: 8, z: 9

x: 7, y: 8, z: 9

類和結構的區別

結構在以下幾個重要方面與類不同 結構是值型別 參見11.3.1小節 所有結構型別都隱式地繼承自類system.valuetype 參見11.3.2小節 對結構型別的變數進行賦值,將建立所賦的值的乙個 副本 參見11.3.3小節 結構的預設值的生成方式為 將所有值型別的域設定為它們的預設值,並將所有引...

結構和類的區別

類是引用型別,是儲存在託管堆中的。通過定義類,我們可以在資料的生存期上得到很高的靈活性,但是也會讓程式的效能有一定的損失。雖然這種損失很小,但當我們只需要定義乙個很小的結構時,用類來定義就有些浪費,對於這樣的問題,c 有相對應的方案來解決,那就是 結構 struct 結構與類的區別 1 結構是值型別...

類和結構的區別?

靜態成員和非靜態成員的區別?const 和 static readonly 區別?extern 是什麼意思?abstract 是什麼意思?internal 修飾符起什麼作用?sealed 修飾符是幹什麼的?override 和 overload 的區別?什麼是索引指示器?new 修飾符是起什麼作用?...