2010-06-25 178 views
5

在C#中有静态类堆栈分配吗?静态类分配

由于它们不能被实例化,我猜想必须完成它。

+0

如果/因为它们未被实例化,则不分配它们的实例。 – ChrisW 2010-06-25 12:06:13

+2

为什么要在临时存储上分配一些*不是临时的*?这个堆栈,即临时存储区,用于分配*消失*的东西。但静态类永远不会消失。 – 2010-06-25 14:14:58

+0

@ChrisW:那么静态类的静态字段在哪里存在? – 2010-06-25 14:15:15

回答

10

它们存储在堆的区域内,称为高频堆。你可以在这个codeproject文章中找到更多细节。 Static Keyword Demystified

5

我的理解是,静态类在堆上分配(使用静态构造函数,当类型被初始化时)。

如果他们在堆栈中,如果您有很多静态类别在踢,您会很快耗尽堆栈空间。