Каков размер ссылки на CLR - PullRequest
0 голосов
/ 29 августа 2009

Я (просто из любопытства) пытался выяснить, каков размер реальной ссылки, когда в стеке выполняется распределение.

После прочтения этого я все еще не знаю (это отвечает только для типов значений или определений типов), и я все еще не могу найти его где-либо.

Итак, представьте себе класс следующим образом

class A
{
    string a;
}

Теперь, когда создается экземпляр объекта типа A, ссылка на строковый объект будет храниться в стеке, а какой будет размер выделения в стеке?

Отказ от ответственности: Если я говорю полную и полную чушь, пожалуйста, дайте мне знать:)

Ответы [ 3 ]

4 голосов
/ 29 августа 2009

Точно так же, как размер указателей, предположительно, размер будет таким же, как и у нативного int: 32-битный на 32-битной платформе и 64-битный на 64-битной платформе.

2 голосов
/ 31 августа 2009

Теперь, когда создается экземпляр объекта типа A, ссылка на строковый объект будет храниться в стеке, а какой будет размер выделения в стеке?

Ссылка на строку фактически будет храниться в куче, а не в стеке, поскольку A является ссылочным типом.

2 голосов
/ 29 августа 2009

Это будет размер IntPtr, 32 или 64 бита, в зависимости от среды.

...