【发布时间】:2014-08-08 10:30:41
【问题描述】:
如果一个类的新实例不包含任何对象,它是创建一个堆条目(其中没有任何内容)还是只是一个没有指向堆上某个位置的引用/指针的堆栈条目?空类的新实例是否使用任何堆内存?例如:
class MyClass
{
}
class Program
{
Static void Main(string [] args)
{
MyClass mc = new MyClass();
}
}
【问题讨论】:
-
没有字段并不意味着没有数据。特别是在 .Net 中。会有关于类的元信息,它是什么类型,大小,引用计数等。我猜它仍然会将数据放在堆上。
-
是的,听起来不错。类是引用类型,因此需要堆来存储。任何内存需求都必须在堆上分配,即使它很小。令人沮丧的是,我无法找到这些信息。有人确定吗?
标签: c# heap-memory stack-memory