引用類型包含值類型字段,引用類型初始化後,值類型默認會被初始化為0、Null。
CLR允許為值類型定義構造器,但是構造器的調用,就必須顯式的寫代碼來調用它們。
CLR不允許為值類型定義無參構造器。只能定義有參構造器,並且構造器中必須為值類型中的所有字段全部賦值,否則報錯。
c#中雖然沒有無參構造器,但是可以使用這個語法初始化在內部的字段:
StructType st = new StructType();//為內部字段初始化0或者null
所以對定義有參構造器的參考寫法:
代碼如下:
public StructType(int x){ //定義有參構造器
this = new StructType();//將所有的字段初始化為0或者Null
m_x = x;//用參數x覆蓋m_x字段,m_x已被上句話初始化為0
}