引用类型包含值类型字段,引用类型初始化后,值类型默认会被初始化为0、null。 clr允许为值类型定义构造器,但是构造器的调用,就必须显式的写代码来调用它们。 clr不允许
引用类型包含值类型字段,引用类型初始化后,值类型默认会被初始化为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# 枚举(enum), 枚举类型是用于声明一组命名的常数的基本数据类型(值类型);二、枚举的定义: 声明enum变量:enum <...
[阅读全文]
-
深入了解c# 匿名类型
一、什么叫做匿名类? 匿名类就是没有名字的类。匿名类不能被引用,只能再创建的时候用new语句来声明。二、匿名类的优势以及应用场景; 1、匿名类型提供了一种方...
[阅读全文]
-
-
C# 实现俄罗斯方块(附源码)
概述俄罗斯方块(tetris)是一款由俄罗斯人阿列克谢·帕基特诺夫发明的休闲游戏,帕基特诺夫爱玩拼图,从拼图游戏里得到灵感,设计出了俄罗斯方块。由于上手简单、老...
[阅读全文]
-
浅析c# 接口
接口:是指定一组函数成员而不是实现他们的引用类型。所以只能类喝啊结构来实现接口,在结成该接口的类里面必须要实现接口的所有方法接口的特点:继承于接口的类,必须要实...
[阅读全文]
-
c# 接口使用实例
用接口实现一个简单的物件的入库,出库如定义一个物流类接口,包含物件所属快递公司名称属性,物件单号属性及信息显示方法。通过物件出库类信息和物件入库类信息继承该接口...
[阅读全文]
-
-
-
-
-
网友评论