【发布时间】:2016-09-14 13:44:42
【问题描述】:
我有以下课程:
public class A
{
public List<string> AList { get; set; }
}
然后我创建一个类的对象:
A objectA = new A();
objectA.AList = new List<string>() { "1", "2", "3" };
我的问题是如何在堆中分配内存?我的意思是将objectA.AList 分配在objectA (image1) 内或作为堆中的一个单独对象(image2)
图片1:
图片2:
【问题讨论】:
-
请考虑您对
new List<string>的调用可能在任何时间点 - 它可能在另一个函数中,并且可以在您调用new A()之前或之后调用,并存储在任意数量的中间变量。您如何期望运行时预测未来并知道它将最终分配给特定的A对象的AList属性? -
@Damien_The_Unbeliever 因此答案是
Image2?
标签: c# memory-management garbage-collection