C# различает типы, которые могут быть , и те, которые не могут. (), позволяют типам значений содержать null, (функция компилятора), помогают перехватить ошибки с null, а (, , ) делают работу с потенциально нулевыми значениями чистой и безопасной — решая перvasive проблему null-ссылок.
