C# rozlišuje mezi typy, které mohou být , a těmi, které nemohou. () umožňují typům hodnot obsahovat null, (funkce kompileru) pomáhají zachytit chyby spojené s null, a (, , ) činí práci s potenciálně null hodnotami čistou a bezpečnou — řeší všudypřítomný problém null-reference.
