结构和类有什么异同
2023-07-06
类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。
结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。
如何选择使用结构还是类:
a)堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些
b)结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。
c)在表现抽象和多级别的对象层次时,类是最好的选择
d)大多数情况下该类型只是一些数据时,结构是最佳的选择