c#结构

1结构式值类型,在当做参数传递和赋值时使用的是值传递,对所有对象的值的复制,不会影响到原来的 对象。

2结构都有一个与定义的 无参构造函数,此构造函数不允许删除和重定义,并且该无参构造函数会一直存在。不会因为定义其他的;有参构造函数就消失

3要调用结构的实例构造函数就必须使用new运算符,如果未使用new运算符,那么结构的数据成员就是未分配状态,在分配之前不能进行访问。,在为调用new时除非显示的设置了数据成员的值否则不能使用数据成员,除非所有数据成员都以设置否则不能调用任何函数成员。

4结构的静态构造函数不能有任何访问修饰符和参数,

静态构造函数不能访问实例成员,

静态构造函数无法直接调用

类的静态构造函数是在类创建第一个实例或引用任何静态成员之前自动调用的。结构的静态构造函数式在以下任何情况下被自动调用:

使用显示声明的构造函数进行初始化

调用结构的方法,或访问结构的静态数据成员

5结构式隐式密封的不能作为基类派生其他结构,也不能从类派生但是可以从接口派生

结构不能声明为sealed abstract的 因为其总数隐式密封的

结构的成员不能使用protectedprotected internal修饰符只是是publicprivate类型修饰符

 

6结构类型的数据成员不允许在声明时显示初始化,必须有构造函数初始化或由用户指定

Public struct  structone

{

Public string name=lzhq”;

Public int age=22”;

}

是错误的,不能在声明时显示初始化结构的数据成员。

 

原文地址:https://www.cnblogs.com/moonfans/p/2790629.html