C#基础1(异同与区别及其特点)
一.值类型与引用类型的主要区别
1.值类型分配在栈上,引用类型分配在堆上
2.值类型继承自ValueType,引用类型不会继承自ValueType
3.值类型变量包含实例数据,而引用类型变量,保存了其数据的引用地址
4.值类型不由GC(垃圾回收机制)管理,自动释放效率比引用类型高
5.值类型不能被继承,而引用类型可以
6.值类型不能为null,自动初始化为0,而引用类型默认为null
二.结构和类的区别
1.结构是值类型,而类是引用类型
2.结构不能从另外一个结构或类继承,并且不能被继承
3.结构没有默认的构造函数,但是可以手动添加构造函数,类有默认的构造函数
4.结构没有析构结构,而类有析构函数
5.结构可以不使用new关键字,而类必须使用new关键字
三.泛型集合与非泛型集合的异同
1.泛型集合可以对所保存的元素进行类型约束,而非泛型集合可以增加任何类型的元素
2.泛型集合添加读取值类型元素时无需装箱和拆箱,而非泛型集合添加读取值类型元素时则需要装箱和拆箱
四.构造函数的特点
1.方法名称与类名相同
2.没有返回值类型
3.主要完成对象的初始化工作