一.值类型、引用类型的定义
值类型:直接访问数据的值。
引用类型:访问数据的存储地址。
二. C#中如何判定值类型
使用Type.IsValueType属性,true为值类型。
值类型判断
三.值类型与引用类型主的主要类型
值类型:基本数据类型(int、float、double等)、结构数据类型、枚举数据类型。
引用类型:类、接口、数组、字符串和委托。
四.值类型与引用类型的不同点
1.内存分配不同:值类型通常被分配到栈上,它的变量直接包含变量的实例,使用效率比较高。
引用类型分配在堆上,它的变量通常会包含一个指向实例的指针,变量通过该指针来引用实例。
2.默认值不同:值类型默认情况下自动初始化为0。引用类型默认情况下为null。
3.继承类不同:值类型继承自System.ValueType。引用类型继承自System.Object。
4.回收方法:值类型不由GC控制,作用域结束时自行释放。引用类型由GC完成。
5.继承性不同:值类型是密封的,因此不能用作基类。引用类型一般有继承性。