类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。
例如,将 Point 定义为结构而不是类在运行时可以节省很多内存空间。下面的程序创建并初始化一个 100 点的数组。对于作为类实现的 Point,出现了 101 个实例对象,因为数组需要一个,它的 100 个元素每个都需要一个。
class Point
{
public int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
class Test
{
static void Main() {
Point[] points = new Point[100];
for (int i = 0; i < 100; i++)
points[i] = new Point(i, i*i);
}
}
如果将 Point 改为作为结构实现,如
struct Point
{
public int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
则只出现一个实例对象(用于数组的对象)。Point 实例在数组中内联分配。此优化可能会被误用。使用结构而不是类还会使应用程序运行得更慢或占用更多的内存,因为将结构实例作为值参数传递会导致创建结构的副本。
分享到:
相关推荐
微软 的 C#语言规范5.0中文版 真的不错,不过是doc的,而且没有目录,看着看着,就不知道看到哪里了。我装换成了PDF,还添加了完整的目录。希望大家喜欢。
这是微软官方出版的中文完整版C#语言规范4.0 中文名:C#语言规范 英文名:CSharp Language Specification
来自Microsoft的 C#语言规范,版本 5.0 这才是C#语言最权威的文档
C#语言规范(3.0)中文-微软官方版,对初学者很有用
微软官方C#语言规范2.0版本,中文
C#(读作“See Sharp”)是一种简洁、现代、面向对象且类型安全的编程语言。 C# 起源于 C 语言家 族,因此,对于 C、 C++ 和 Java 程序员,可以很快熟悉这种新的语言。 C# 已经分别由 ECMA International 和 ISO/IEC...
C# 语言规范word新,word版本,便于修改和收藏 勾月科技
C# 语言规范 中文版
C#语言规范4.5.pdf,供学习c#使用者的参考书
C#语言规范 微软官方 v5.0 详细讲解c#的类 变量等各种语法
C# 语言规范 5.0 中文版.pdf
C#语言规范,提供各个方面编程的规范引导,编程,学习必备良书
微软官方 C#语言规范5.0PDF中文版
一直以来,C# 语言规范主要有两大参与者,一个是 ECMA 组织,另一个是微软。对此,作为 C# 的开发商微软表示,C# 6.0 语言规范主要侧重于生成标准文本。微软参与该规范背后的 Ecma TC49-TG2 任务组已将标准的源代码...
1)微软C#语言规范5 0版C Sharp Language Specification,原格式为Word的docx文档 现完美转换为pdf文件; 2)带三级书签,并修复了原docx文档的页眉Heading 1错误,其他未作任何改动 最权威的官方