У меня есть следующий класс:Как выделяется память при создании свойства класса?
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:
image2:
Учтите, что ваш вызов 'New List' может быть в любой момент времени - он может быть в другой функции и может быть вызван задолго до или после вашего вызова на 'new A()' и сохранен в любое число промежуточных переменных. Как вы ожидаете, что среда выполнения предскажет будущее и узнает, что она будет * в конечном итоге назначена на свойство 'AList' определенного объекта' A'? –
@Damien_The_Unbeliever, следовательно, ответ «Image2»? – StepUp