Typy v C# se dělí na dvě základní kategorie: hodnotové typy (ukládají data přímo) a referenční typy (ukládají referenci/ukazatel na data na haldě). Liší se v tom, jak jsou ukládány, kopírovány a porovnávány — jedná se o zásadní rozdíl, který ovlivňuje chování v celém jazyce.
Dvě kategorie
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.
