C# skelner mellem typer, der kan være , og dem, der ikke kan. () lader værdi-typer indeholde null, (en compiler-funktion) hjælper med at fange null-fejl, og (, , ) gør arbejdet med muligvis-null-værdier rent og sikkert — og adresserer det udbredte null-reference-problem.
