Tipurile C# se încadrează în două categorii fundamentale: tipurile de valori (stochează datele direct) și tipurile de referință (stochează o referință/pointer la date pe heap). Ele diferă în modul în care sunt stocate, copiate și comparate — o distincție crucială care afectează comportamentul în toată limba.
Cele două categorii
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.
