Я пытаюсь понять, как объекты хранятся в памяти с использованием .NET Framework.Как хранятся объекты в памяти?
Учитывая следующий person
класс:
public class Person
{
public string name { get; set; }
public int age { get; set; }
}
Я считаю, инициированным переменная типа Person
будет иметь следующую структуру в памяти:
Вопросы:
Во-первых, являются ли они основными или очевидными недостатками в моем понимании? (Я почти уверен, что есть, так как это просто кажется эффективным для обработки объектов таким образом, как я описываю, особенно в том, как указатель
name
указывает на коллекцию символов для элемента строки)Во-вторых, для элементов типа значения класса (IE
Age
) они хранятся внутри самого объекта (так в том же адресе памяти, что и объект), или им присваивается собственный адрес, а затем объект указывает на него? (Как показано на диаграмме)Как и в предыдущем вопросе, но для ссылочных типов элементов, содержит ли объект указатель на указатель? (I.E Указатель имени, ссылающийся на коллекцию char на моей диаграмме)
И, наконец, было бы иметь значение, если бы члены моего класса
Person
были полями, а не свойствами?
Обновление: обновления схемы на основе ответов от Sweeper & Тима, который я считаю, теперь правильно.
Примечание: указатель изменен на ссылку, как это управляемый код.
Благодарим вас за разъяснение. Я добавил обновленную диаграмму, основанную на ваших ответах и ответах Тима, которые, как я считаю, теперь правильны? – KidCode
@KidCode да, это правильно. – Sweeper