I tipi C# si dividono in due categorie fondamentali: tipi value (memorizzano i dati direttamente) e tipi reference (memorizzano un riferimento/puntatore ai dati nello heap). Differiscono nel modo in cui vengono memorizzati, copiati e confrontati — una distinzione cruciale che influisce sul comportamento in tutto il linguaggio.
Le due categorie
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.
