Если некоторая переменная имеет размерный тип, она содержит реальные данные. Так что первое правило для размерных типов таково: они не могут быть
null.
Ниже, например, я на С# выделил память, создав переменную типа
System.Int32,
который определен в CTS. При этом объявлении происходит не что иное, как выделение в стеке 32-разрядной области.
int i = 32;
Кроме того, при присвоении / значения в выделенное пространство помещается 32-разрядное число.
В С# определено несколько размерных типов, включая перечислители (enumerators), структуры (structures) и примитивы (primitives). Объявляя переменную одного из этих типов, вы каждый раз выделяете в стеке некоторое число байтов, ассоциированных с этим типом, и работаете напрямую с выделенным массивом битов. Кроме того, когда вы передаете переменную размерного типа, передается значение переменной, а не ссылка на лежащий в ее основе объект.