C# membedakan tipe yang dapat dari yang tidak. () memungkinkan tipe nilai menampung null, (fitur compiler) membantu menangkap bug null, dan (, , ) membuat bekerja dengan nilai yang mungkin null bersih dan aman — mengatasi masalah null-reference yang tersebar luas.
