在引用类型中定义值类型时会发生什么

时间:2014-01-26 20:16:54

标签: c# .net managed-code

嗨,每一个我都没有问题

1)

class ClassName 
{
    public int[] a = new int[100];
}

创建此类的对象时会发生什么意味着存储在堆栈[值类型]或堆上的整数数组[参考类型]

我很困惑,因为specs值类型存储在Stack上,然后数组将存储在堆栈上。

但是参考类型是根据规范

在堆上创建的 请大家帮帮我理解这一点。我不想在不知道幕后发生的事情的情况下编写代码

先谢谢

1 个答案:

答案 0 :(得分:4)

此处没有值类型。所以这个问题没有实际意义。 ClassName和int []都是引用类型。

如果将值类型声明为自动本地,则将其存储在堆栈中。如果它在另一个类型中声明,则它存储在另一个类型中。

C#的最重要的神话之一是值类型总是存储在堆栈中。