引用类型和值类型的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:19:08
为什么将自定义的类作为引用类型,而大部分的基本数据作为值类型?请高手详细的回答一下!谢谢了!!!!

自定义类我们通常用于描述一个具有行为的对象。

而值类型则只用于表示数据,也可以具有一些操作数据的方法。

之所以在 CLR 中提供这两种类型,是因为在密集运算中,值类型可以提供更高的效率,因为其多数情况下值类型是在栈中分配的。

值类型数据是在栈中分配空间的,是在数据定义的时候就按照你所需要的大小预留了空间,所以在数据的存取时效率比较高;而引用类型是在堆中分配的,可以用来描述具有行为的数据,所以你会发现包括结构都是属于引用类型,是具有属性的数据。平时我们自己定义的行为大部分是具有自己行为的数据,所以都不啊他们放在堆上,也就是引用类型。