1. 程式人生 > >C#中結構體和類區別和聯絡

C#中結構體和類區別和聯絡

結構體

結構體定義
結構體是一種值型別,通常用來封裝小型相關變數組。例如座標或者商品的特徵。
結構體是一種自定義的資料型別,相當於一個複合容器,可以儲存多種型別。
結構體由結構體成員構成,結構體成員包含欄位,屬性與方法
結構體建構函式
1.結構體不能宣告預設的建構函式,否則會報錯
2.結構體只能宣告帶引數的建構函式,格式為 public 結構體名(引數列表)
3.在結構體的自定義建構函式當中要為所有的欄位進行初始化
4.不管有沒自定義建構函式,結構體預設建構函式一直存在
總結
1.結構體是值型別
2.結構體不能宣告預設的建構函式,但是可以宣告多個不同的帶引數建構函式
3.在結構體的自定義建構函式當中必須為所有欄位進行初始化
4.結構體是隱式密封的,不可以繼承

結構體與類的區別與聯絡

相同
都可以用於資料儲存,都包括欄位、屬性、方法等成員
不同
1.在結構體中可以宣告欄位,但是宣告欄位的時候是不能給初始值的
2.關於建構函式:

    a、結構體中,預設建構函式一直存在,而類中如果添加了自定義建構函式必須手動寫出預設構造 
    b、在結構體的建構函式中,必須要為結構體的所有欄位賦值.類中不需要

3、建立結構體物件可以不使用 new 關鍵字.直接宣告 1 個變數就可以.但是這樣的話,結構體物件 中的欄位是沒有初始值的,所以在使用欄位之前必須要為這個欄位賦值.
4、結構體是值型別 類是引用型別.
5、結構體不能繼承,類可以繼承