标签: c# .net
我们知道值类型在堆栈中分配内存,引用类型在堆中分配。现在,当我们创建一个类的对象时,它是一个引用类型,并且内存将在堆中分配,此时我有一个混淆,这些类中的值类型是否已分配内存?是堆还是堆栈?
答案 0 :(得分:0)
“在堆栈上创建值类型”过于简单化了。
方法中的变量的值类型存在于堆栈中,而不是对堆上对象的引用。
字段的值类型(在类或结构内)作为连续内存区域在父类型中存在 - 所以如果父对象存在于堆栈中,那么值类型成员也将存在于堆栈中,而引用类型的值只有堆栈上的引用/指针。