.net 里class 和struct的异同?
时间:2011-04-28 来源:.net 虾米
结构是一种简单的用户定义类型,也是类的一种轻量级替代品;
相同点:
1、类和结构都有构造函数、属性、方法、字段、操作符、嵌套类型和索引器;
2、结构体也可以实现多个接口;
不同点:
1、因为结构体是隐式密封的,所以不支持继承;
2、结构体不能初始化实例字段
3、结构体没有析构函数或默认的无参构造函数;
4、如果我们不定义构造函数,CLR将初始化结构体,将所有成员置零;
如果我们定义了非默认的构造函数,就不会发生CLR初始化;
因此,我们必须显式的初始化结构体中的所有字段;
5、结构体数组在内存使用方面效率更高;结构体集合会低些,因为结构体集合的元素应该是引用类型的,所以结构体必须进行装箱处理;
而装箱和拆箱都是有开销的;
所以,类在大的集合中更有效率;
相关阅读 更多 +