C# განასხვავებს ტიპებს, რომლებიც შეიძლება იყოს იმ ტიპებისგან, რომლებიც ვერ არიან. () საშუალებას აძლევს მნიშვნელობის ტიპებს დაიჭირონ null, (კომპილატორის ფიჩა) ხელს უწყობს null ხარვეზების ამოჭურვას, და (, , ) ხდის სამუშაოს შესაძლოა-null მნიშვნელობებთან დაკლიანებული და უსაფრთხო — გადაჭრის ხელმისაწვდომელი null-რეფერენსის პრობლემა.
