【发布时间】:2014-02-17 13:41:32
【问题描述】:
大家好,我有几个问题
1)
class ClassName
{
public int[] a = new int[100];
}
创建此类对象时会发生什么我的意思是整数数组存储在哪里,堆栈[值类型]或堆[引用类型]
我很困惑,因为规格值类型存储在堆栈上,然后数组将存储在堆栈上。
但是引用类型是按照规范在堆上创建的
请大家帮我理解这一点。我不想在不知道幕后发生的情况下编写代码
提前致谢
【问题讨论】:
-
值类型不在堆栈上分配,它们是内联分配的。数组是引用类型,所以数组数据存放在堆上,而对它的引用存放在
ClassName的实例中。 -
重复的问题,但这是一个非常好的答案:stackoverflow.com/a/2561622/67038
-
@Lee where 将是“public int a =12;”存储在 ?
-
@Constantine - 它将作为包含结构/对象数据的一部分存储。
标签: c# .net managed-code