struct(结构):
1.值类型,在栈中.
2.不可给属性设置初始值.
3.编译器自动定义无参构造,不可以手动添加无参构造.
4.定义带参构造后(无论几个参数),必须对所有属性进行初始赋值.
5.可以不用实例化,定义后直接使用.
6.不支持继承.
class(类):
1.引用类型,在堆中.
2.可以给属性设置初始值.
3.编译器自动定义隐式无参构造,也可以手动添加显式无参构造.
4.定义带参构造后,只需赋值参数对应属性即可,但是需要使用无参构造时,必须手动添加.
5.类使用必须进行实例化.
6.支持继承.
结构适用的场景
1.由于分配内存快,作用域结束即被删除,不需要垃圾回收,用于小型数据结构,但传递过程会复制,应该使用ref修饰,提高效率
网友评论