天天看點

C#類和結構體的異同點簡單總結

類和結構的異同點?

異:  1.關鍵字不同 一個是class,一個是struct

    2.類型不同,一個是引用類型,一個是值類型(一個堆區,一個棧區)

        3.成員不同,結構體沒有預設的構造函數(可以添加)和沒有析構函數,不可以使用abstract,protected,sealed修飾

        4.Struct變量使用完之後就自動解除記憶體配置設定,Class執行個體有垃圾回收機制來保證記憶體的回收處理

        5.繼承性。結構不可以繼承自另一個結構或被繼承,但和類一樣可以繼承自接口

        6.在結構體中可以聲明字段,但是聲明字段的時候是不能給初始值的.

        7.實體類中如果我們沒有顯示的定義構造函數,那麼會有一個隐式無參的構造函數(重載構造函數之後,需要顯示聲明無參構造函數),而在結構體中隐身無參的構造函數無論如何都存在

        8.在類中可以顯示的定義無參的構造函數,而在結構體中我們不能顯示的定義無參的構造函數

        9.結構體是可以New的,而結構體構造函數要求必須要為所有的字段指派.即使是無參的構造函數,也會給值類型賦初值為0,引用類型賦初值為null

同: 1.都有屬性和方法

       2.和類一樣可以繼承自接口