1.性质不同
class是引用类型,继承自System.Object类
struct是值类型,继承自System.ValueType类
2.职能不同
class于封装行为(方法)
struct用于存储数据
3.特性不同
class支持继承,可以继承类、实现接口
struct不能继承类,也不能作为其他类的基类,但可以实现接口
class可以为抽象类,也可以声明抽象方法
struct不能为抽象,也不能声明抽象函数
4.实例化方式不同
class必须使用new关键字实例化
struct不需要使用new关键字
5.内存回收机制不同
class实例由垃圾回收机制来保证内存的回收处理
struct变量使用完后立即自动解除内存分配
鉴于struct占用的是栈空间,效率上会稍高一些,但容量相对较小,可以在存储少量数据时考虑使用 |