C# 基础之类型(一)

时间:2023-03-09 08:40:58
C# 基础之类型(一)

一、类型

类型总共分为两种,一种是值类型(Value Type),如枚举、结构;另一种是引用类型(Reference Type),如类、接口、委托等。

值类型

1,值类型通常分配在线程的堆栈上

2,作用域结束时,所占空间自行释放,具有高效率

3,所有的值类型都派生自system.ValueType(system.ValueType 本身就是一个类型,是重写的object的Equals()方法

   4,访问值类型时,一般访问的都是其实例

   5,每个值类型变量都有自己的数据副本,因此对一个值类型的变量的操作不会影响其他的变量

6,复制值类型变量时,复制的时变量的值,而不是变量的地址

7,值类型变量不能为null,必须具有一个确定的值

引用类型

1,引用类型通常分配在托管堆上

2,由垃圾回收(CG)来控制其回收,效率低

3,必须使用关键字new来创建引用类型的变量

4,多个引用类型变量都可以引用同一个对象,这种情况下,对一个变量的操作会影响另一个变量所引用的同一对象

5,引用类型被赋值之前的值都是null