C# face distincție între tipurile care pot fi și cele care nu pot. () permit tipurilor de valoare să conțină null, (o funcție a compilatorului) ajută la capturarea erorilor legate de null, iar (, , ) fac lucrul cu valori posibil null curat și sigur — abordând problema omniprezentă a referințelor nule.
