Предисловие
Прежде вспомним, что в .NET существует 2 вида объектов: value types и reference types, которые создаются, соответственно, в стеке и куче (управляемом сборщиком мусора).
Value types предназначены для хранения простых данных, будь то число, символ. Во время присваивания значения переменной происходит копирование каждого поля объекта. Также время жизни таких объектов зависит от области видимости. Размеры value types определены в Common Type System и составляют:
Количество байт | |
System.Byte | 1 |
System.SByte | 1 |
System.Int16 | 2 |
System.Int32 | 4 |
System.Int64 | 8 |
System.UInt16 | 2 |
System.UInt32 | 4 |
System.UInt64 | 8 |
System.Single | 4 |
System.Double | 8 |
System.Char | 2 |
System.Decimal | 16 |
Reference types, наоборот, представляют собой ссылку на область памяти, занимаемой экземпляром объекта в куче.
Ниже приведена внутренняя структура CLR-объектов:

Read more: Habrahabr.ru
QR: