C#:n tyypit jakaantuvat kahteen perustavanlaatuiseen kategoriaan: arvotyypit (tallentavat datan suoraan) ja viitetyypit (tallentavat viitteen/osoittimen heap-muistissa olevaan dataan). Ne eroavat siinä, miten ne tallennetaan, kopioidaan ja vertaillaan — kriittinen ero, joka vaikuttaa käyttäytymiseen koko kielen laajuudella.
Kaksi kategoriaa
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.
