Типы C# делятся на две фундаментальные категории: типы значения (хранят данные непосредственно) и типы ссылки (хранят ссылку/указатель на данные в куче). Они различаются тем, как они хранятся, копируются и сравниваются — различие, критически важное для поведения на всём протяжении языка.
Две категории
Value types → struct, int, double, bool, char, enum, DateTime, decimal
Stored INLINE (stack for locals); copied BY VALUE.
Reference types → class, string, array, object, interface, delegate
Variable holds a REFERENCE to data on the heap; copied BY REFERENCE.
