結構和類的區別

2021-06-04 10:32:22 字數 464 閱讀 2379

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

結構與類的區別:

(1)結構是值型別,不是引用型別。

(2)結構可以繼承介面,但是不可以繼承類或結構。

(3)結構的構造方法的工作方式有所不同,只能宣告帶引數的構造方法,且不能宣告析構方法。

(4)可以指定字段如何在記憶體中布局。

什麼時候使用(struct)結構:

雖然我們可以用(class)類完全代替(struct)結構,但是為了程式的效能的提高,建議大家在實現乙個用於儲存資料或資料量較小的結構時來使用結構,因為結構是值型別,所以在效能的影響上,是能起到正面作用的。

類和結構的區別?

類 類是引用型別在堆上分配,類的例項進行賦值只是複製了引用,都指向同一段實際物件分配的記憶體 類有構造和析構函式 類可以繼承和被繼承 結構 結構是值型別在棧上分配 雖然棧的訪問速度比較堆要快,但棧的資源有限放 結構的賦值將分配產生乙個新的物件。結構沒有建構函式,但可以新增。結構沒有析構函式 結構不可...

類和結構的區別

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

類和結構的區別?

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