C# unterscheidet zwischen Typen, die sein können, und solchen, die es nicht können. () ermöglichen es Werttypen, null zu halten, (ein Compiler-Feature) helfen dabei, Null-Bugs zu erkennen, und (, , ) ermöglichen einen sauberen und sicheren Umgang mit möglicherweise Null-Werten — und adressieren damit das weit verbreitete Null-Referenz-Problem.
