Насколько велика ссылка на объект в .NET? - PullRequest
68 голосов
/ 27 сентября 2010

Каков размер ссылки на объект в .NET?Различается ли он между компиляциями x86, x64 и / или AnyCPU?

Если это имеет значение, меня лично интересует C #.

Ответы [ 3 ]

71 голосов
/ 27 сентября 2010

Сама ссылка в основном является указателем.32 бита в 32-битной ОС, 64 бита в 64-битной ОС.

Размер объекта, на который ссылаются, более сложный.

18 голосов
/ 02 июня 2012

Для определения размера указателя вы можете использовать System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)) или sizeof(IntPtr) в небезопасном контексте.

Edit:

Или IntPtr.Size.

14 голосов
/ 27 сентября 2010

Ссылка на объект - это, в основном, указатель на память, которая содержит атрибуты объекта. Таким образом, ссылка на процессорное слово имеет длину - 32 бита на 32-битных платформах и 64 бита на x64.

...