1. 程式人生 > >C#結構體與類區別

C#結構體與類區別

1. 結構體與類定義方式

結構體定義使用struct類定義使用class
結構體:
    struct testDemo{
        int num;
        void action(){
        }
    }
   類:
    class testDemo{
        int num;
        void action(){
        }
    }

==================

2. 結構體與類的成員初始化

  1. 結構體成員變數在宣告時不能賦值,而類在宣告變數時會自動寫入建構函式完成賦值(即只能定義,不能執行)。
  2. 結構體中隱式建構函式存在,不能手動寫,其餘建構函式在手動編寫中必須對所有成員變數初始化。
  3. 在結構體建立中,若使用new建立,則可以使用其中的成員變數(隱式建構函式會為所有成員變數賦值,對於值型別初始化為0,引用型別為null)
  4. 結構體不能再繼承(結構體繼承自Object),但可以implements介面

3.結構體與類最大的區別

  • 結構體是值型別,類是引用型別.
  • 結構體在棧中,訪問速度快,空間小。類在堆中,訪問速度比棧慢,空間大。
  • 結構體是值型別,類是引用型別。