c#什么是值类型什么是引用类型

如题所述

第1个回答  2022-11-16

一、数据类型在它自己的内存分配中存储数据,则该数据类型就是“值类型”。值类型包括:

1、所有数字数据类型

2、Boolean、Char和Date

3、所有结构,即使其成员是引用类型

4、枚举,因为其基础类型总是SByte、Short、Integer、Long、Byte、UShort、UInteger或ULong

二、“引用类型”包含指向存储数据的其他内存位置的指针。引用类型包括:

1、String

2、所有数组,即使其元素是值类型

3、类类型,如Form

4、委托

扩展资料

值类型和引用类型使用注意事项

值类型的变量保存到内存的线程的堆栈中;而引用类型的变量会保存到托管堆中,其中这里说的托管堆又可以分为GC堆、LOH堆。其中GC堆、LOH堆是根据创建的对象的大小来分配到不同的堆中的。

判断的平衡点是这个对象是否超过85000字节,如果小于85000字节,则系统把对象保存到GC堆中;如果大于或者等于85000字节,则系统保存到LOH堆中(一般LOH创建的对象是数组)。所以托管堆就是指GC堆和LOH堆的集合。

相似回答