引用类型包含值类型字段,引用类型初始化后,值类型默认会被初始化为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
}
您可能感兴趣的文章:c#值类型和引用类型使用示例c#字符串值类型与引用类型比较示例C#值类型和引用类型的深入理解C#引用类型和值类型的介绍与实例浅谈C# 中的可空值类型 nullc# 引用类型与值类型的区别详解浅谈PHP与C#的值类型指向区别的详解c# 引用类型和值类型C#中值类型和引用类型的区别深度分析
C#
值类型
构造器