C#中類和結構的區別


為了區分類和結構,我們首先必須理解結構和類在持有和定義資料方面看似等效。兩者都可以定義和持有其資料成員的一些預設值。但是,如果我們從更廣闊的視角來看待它們,那麼與結構相比,類提供了更大的靈活性和功能性。

以下是類和結構之間的一些重要區別。

序號關鍵點結構
1資料型別在類中定義的資料作為引用儲存在記憶體中,並具有特定的地址以便訪問,因此可以說類是引用型別。另一方面,對於結構,資料成員的值直接儲存在棧中或內聯包含的型別中,因此結構被認為是值型別。
2儲存位置如上一點所述,類的資料成員作為引用儲存,引用型別分配在堆記憶體中。另一方面,結構直接儲存值,值型別分配在棧記憶體中。
3建構函式類可以定義建構函式和解構函式,因為它實現了它們的功能。另一方面,結構既不能有建構函式也不能有解構函式,因為它沒有提供此類實現。
4例項化類引入了建構函式,類可以使用`new`關鍵字例項化其例項。另一方面,結構無需`new`關鍵字即可建立例項。
5繼承類可以繼承其父類的屬性,因為它支援繼承特性。另一方面,結構不支援繼承。
6protected修飾符因為類支援protected修飾符,所以我們可以在類中定義的資料成員上使用protected修飾符。另一方面,結構不支援protected修飾符。

更新於:2020年6月9日

805 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.