C# typer falder i to grundlæggende kategorier: value types (gemmer dataene direkte) og reference types (gemmer en reference/pointer til data på heapen). De adskiller sig i, hvordan de lagres, kopieres og sammenlignes — en afgørende forskel, der påvirker opførslen i hele sproget.
De to kategorier
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.
