《Illustrated C# 2012, 4th Edition》Daniel M. Solis 第10章 结构 笔记
与类不同,结构是值类型。
结构不允许有析构函数。
C#为每个结构隐式提供一个无参实例构造函数,它将每个成员设置为类型的默认值。
无法为结构显式声明无参实例构造函数。
结构同样可以使用new运算符创建实例,但这与是否从堆中分配内存无关。
当结构不使用new运算符创建实例时,数据成员显式赋值后才可以访问,函数成员在所有数据成员显式赋值之后才可以调用。
在结构中字段初始化语句是不允许的。
结构是隐式密封的,不能被继承。因此,不能使用protected、internal、abstract、virtual修饰结构的成员。
结构派生自System.ValueType,System.ValueType派生自object。因此,可以使用new、override修饰符,隐藏和覆写System.ValueType的成员。
预定义简单类型(int等)在.NET中都由结构实现。
结构可以实现接口。