C# tipai skirstomi į dvi pagrindines kategorijas: reikšmės tipai (tiesiogiai saugantys duomenis) ir nuorodos tipai (saugantys nuorodą/rodyklę į duomenis heap'e). Jie skiriasi tuo, kaip jie saugomi, kopijuojami ir lyginami — tai yra esmingas skirtumas, turintis įtakos elgesiui visoje kalboje.
Dvi kategorijos
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.
