在创建类的对象时为类内部的值类型分配内存的位置

时间:2018-05-24 20:44:48

标签: c# .net

我们知道值类型在堆栈中分配内存,引用类型在堆中分配。现在,当我们创建一个类的对象时,它是一个引用类型,并且内存将在堆中分配,此时我有一个混淆,这些类中的值类型是否已分配内存?是堆还是堆栈?

1 个答案:

答案 0 :(得分:0)

“在堆栈上创建值类型”过于简单化了。

方法中的变量的值类型存在于堆栈中,而不是对堆上对象的引用。

字段的值类型(在类或结构内)作为连续内存区域父类型中存在 - 所以如果父对象存在于堆栈中,那么值类型成员也将存在于堆栈中,而引用类型的值只有堆栈上的引用/指针。