我有以下课程:
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)
IMAGE1:
图像2:
答案 0 :(得分:2)
正确答案是:图3。
我不会画这个,但是你的例子会导致堆上有5个物体。
对象(实例)没有名称,但它们由以下引用引用:
每个字符串也是一个对象。
objectA
实例仅包含对List的引用,List包含对字符串的引用数组。使用了3个,可能会分配更多,仍然是null
。
这些物体都没有生活在另一个物体里面。