C# distingue les types qui peuvent être de ceux qui ne peuvent pas l'être. () permettent aux types valeur de contenir null, (une fonctionnalité du compilateur) aident à détecter les bugs liés à null, et (, , ) rendent le travail avec des valeurs potentiellement null clean et sûr — résolvant le problème ubiquitaire de la référence null.
