c#数据类型与内存区域
- 值类型
使用时直接分配一个值,使用值类型时,系统分配内存存储这些值。
- 引用类型
存储对数据的引用,多个引用可以指向同一个对象,一个引用更改对象,所有引用都会随之更改。引用类型不会创建任何副本,直接指向对象本身。 -
内置:object,dynamic,string三个引用类型
-
用户自定义:class,delegate,interface
- 指针类型
存储内存地址,该地址内存储其他各个类型的数据
内存区域
内存区域分为堆部分和栈部分,c#中所有变量都存放在内存中
-
栈空间比较小,但是读取速度快; 堆空间比较大,但是读取速度慢
-
值类型:单独定义时,放在栈中
-
引用类型:需要两段内存,引用信息存放在栈中,被引用对象数据存放在内存。