类和结构 类和结构(C# 编程指南) 结构(C# 编程指南) 使用结构(C# 编程指南)

数据和行为是该类或结构的“成员”,它们包含各自的方法、属性和事件等(本主题后面列出了这些内容)。

Person 类型的多个实例,每个实例在其属性和字段中具有不同的值。

通过一个变量做出的更改将反映在另一个变量中,因为两者引用同一数据。

对一个副本的更改不影响另一个副本。

结构最适合一些小型数据结构,这些数据结构包含的数据以创建结构后不修改的数据为主。

http://msdn.microsoft.com/zh-cn/library/ms173109.aspx

结构(C# 编程指南)

结构与类共享大多数相同的语法,但结构比类受到的限制更多:

  • 在结构声明中,除非字段被声明为 const 或 static,否则无法初始化。

  • 结构不能声明默认构造函数(没有参数的构造函数)或析构函数。

  • 在使用值类型的集合(如 Dictionary<string, myStruct>)时,请务必记住这一点。

  • 结构是值类型,而类是引用类型。

  • new 运算符。

  • 结构可以声明带参数的构造函数。

  • System.Object。

  • 结构可以实现接口。

  • 结构可用作可以为 null 的类型,因而可向其赋 null 值。

http://msdn.microsoft.com/zh-cn/library/saxz13w4.aspx

使用结构(C# 编程指南)

Point 对象组成的数组,为了引用每个对象,则需分配更多内存;这种情况下,使用结构可以节约资源。

对于任何私有成员或以其他方式设置为不可访问的成员,只能在构造函数中进行初始化。

但是,在初始化所有字段之前,字段将保持未赋值状态且对象不可用。

(这将导致编译器错误 CS0171。)

结构可实现接口,其方式同类完全一样。

有关更多信息,请参见值类型

除非需要引用类型语义,将较小的类声明为结构,可以提高系统的处理效率。