C# tipovi se dijele u dvije temeljne kategorije: value tipovi (direktno pohranjuju podatke) i reference tipovi (pohranjuju referencu/pokazivač na podatke na heap-u). Razlikuju se po tome kako se pohranjuju, kopiraju i uspoređuju — što je kritična distinkcija koja utječe na ponašanje kroz cijeli jezik.
Dvije kategorije
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.
