A C# típusok két alapvető kategóriára oszlanak: érték-típusok (az adatot közvetlenül tárolják) és referencia-típusok (hivatkozást/pointert tárolnak a heap-en lévő adatra). Abban különböznek, hogyan tárolódnak, másolódnak és hasonlítódnak össze — ez a lényeges különbség a nyelv viselkedését végighatározza.
A két kategória
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.
