Tipet në C# bien në dy kategori themelore: tipet me vlerë (ruajnë të dhënat drejtpërdrejtë) dhe tipet me referencë (ruajnë një referencë/tregues në të dhënat në heap). Ato ndryshojnë në mënyrën se si ruhen, kopjohen dhe krahasohen — një dallim vendimtar që ndikon në sjellje në të gjithë gjuhën.
Dy kategorit
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.
