Nullable Reference Types: C#'ta Null Güvenliğini Sağlamak
C# 8.0 ile gelen Nullable Reference Types (NRT), null referans istisnalarından kurtulmak için derleme zamanında uyarı verir. Geleneksel olarak C#'ta referans türler her zaman null olabilir ama bu tehlike sessizce kalır; NRT bunu açığa çıkarır.
Bir yazı işlemi uygulamasında `Author` nesnesi null olabilir. Eski yaklaşımda bunu çalışma zamanında fark edersin:
1string author = null; // Uyarı yok, sonra NullReferenceException2int length = author.Length; // ÇöküşNullable Reference Types açıkça söyler: eğer null olabilirse bunu belirt.
`.csproj` dosyasına ekle:
1<PropertyGroup>2<Nullable>enable</Nullable>3</PropertyGroup>Veya dosya başına:
1#nullable enable1public class Article2{3public string Title { get; set; } // Null olamaz (uyarı verir)4public string? Content { get; set; } // Null olabilir (güvenli)5public Author? Writer { get; set; } // Null olabilir6}78public class Author9{10public string Name { get; set; }11}`?` işareti "bu null olabilir" anlamında.
1var article = new Article { Title = "Rehber" };23if (article.Writer!= null)4{5Console.WriteLine(article.Writer.Name); // Güvenli6}7else8{9Console.WriteLine("Yazar yok");10}Çıktı:
1Yazar yok1string writerName = article.Writer?.Name?? "Bilinmiyor";2Console.WriteLine(writerName);Çıktı:
1BilinmiyorNullable Reference Types, hataları erken yakalamanı sağlar. Derleyici, null olabilecek bir değişkeni null kontrolü olmadan kullanmaya çalışırsan uyarı verir. Böylece üretimde çökmeye neden olan NullReferenceException'ları önlersin.
0 yorum