结构与类的区别

(1)结构是值类型(存储在“栈”中),而类是引用类型(存储在“堆”中)。因而对一个结构变量的操作不会影响到另一个结构变量
(2)结构也可以不用new来实例化,但类则必须采用new来实例化。
(3)结构不存在像类那样的显示的继承关系,也不能派生出其他类型(因为结构类型隐含地被定义为sealed),但所有的结构类型都隐含地继承于System.ValueType(它也隐含地继承于System.Object类);结构可以实现接口(其编程规则类同于类)。
(4)结构成员的访问属性不能为protected或是protected internal。同时结构的成员也不能为abstract或virtual。
(5)结构不允许有无参数的构造函数,因为每个结构都有一个默认的无参数的构造函数(它将为结构的值类型成员都赋值为其各自类型的默认值,而引用类型的成员则被赋值为null),这一点是与类不同的。
(6)在结构的构造函数中,不能包含base()(它无基类)。结构没有析构函数定义,这也是和类的不同之处。
(7)在结构中不允许在声明非静态域时,对域进行赋值,而类的所有的域成员在声明时就可以赋初始值。
结构的应用场合:因为结构的传递是通过拷贝值来实现,而类是引用值的地址。数据量越大差距就越明显。因此结构一般用于传递少量的数据的场合,而类用于传递大量的数据的场合。
posted @ 2011-03-24 22:24  山之松  阅读(130)  评论(0编辑  收藏  举报