结构体和类区别
结构体和类有很多地方很相似,是类的一种轻量级的替代品。因此弄清楚他们的区别和相同点,能比较好的把握他们的使用。
比较:
比较内容 |
结构 |
类 |
构造函数 |
支持(不能自定义,默认提供,作用是将所有的数据成员置零) |
支持(能自定义) |
析构函数 |
不支持 |
支持 |
变量初始化 |
不支持(private int num = 50 是错误的) |
支持 |
继承 |
不支持(sealed类型) |
支持 |
接口 |
可以实现多个接口 |
可以实现多个接口 |
特性 |
支持 |
支持 |
属性 |
支持 |
支持 |
方法 |
支持 |
支持 |
类型 |
值类型 |
引用类型 |
Summary:
1:结构体隐式地从System.ValueType派生出来
2:从类型的区别可以看出:
结构体数组效率比类数组效率高(不需要装箱合拆箱)。结构体集合(如Hashtable)效率比类集合效率低。集合的元素是引用类型,所以结构体必须进行装箱和拆箱处理。所以类在大的集合中更有效率。