c# 值类型实例构造器
更新时间:2012年10月29日 13:53:09 作者:
CLR总是允许创建值类型的实例。另外值类型不一定需要定义构造器,c#编译器不会为值类型生成默认的无参构造器
引用类型包含值类型字段,引用类型初始化后,值类型默认会被初始化为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
}
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#利用IDbDataAdapter/IDataReader实现通用数据集获取
这篇文章主要为大家详细介绍了C#利用IDbDataAdapter/IDataReader实现通用数据集获取的相关知识,感兴趣的小伙伴可以跟随小编一起学习一下2024-11-11
C#编程:List.ForEach与foreach循环的对比分析
这篇文章主要介绍了C#编程:List.ForEach与foreach循环的对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2025-03-03


最新评论