C# skiljer mellan typer som kan vara och typer som inte kan det. () låter värdetyper innehålla null, (en kompilatorsfunktion) hjälper till att fånga null-buggar, och (, , ) gör arbetet med möjligtvis null-värden rent och säkert — och adresserar det genomgripande null-referensproblemet.
