C# 结构
结构与类的相似之处在于,它们都表示可以包含数据成员和函数成员的数据结构。但是,与类不同,结构是一种值类型,并且不需要堆分配。结构类型的变量直接包含了该结构的数据,而类类型的变量所包含的只是对相应数据的一个引用(被引用的数据称为“对象”)。
结构对于具有值语义的小型数据结构尤为有用。复数、坐标系中的点或字典中的“键-值”对都是结构的典型示例。这些数据结构的关键之处在于:它们只有少量数据成员,它们不要求使用继承或引用标识,而且它们适合使用值语义(赋值时直接复制值而不是复制它的引用)方便地实现。
如第 4.1.4 节中所描述,C# 提供的简单类型,如 int、double 和 bool,实际上全都是结构类型。正如这些预定义类型是结构一样,也可以使用结构和运算符重载在 C# 语言中实现新的“基元”类型。在本章结尾(第 11.4 节)给出了这种类型的两个示例。