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 NullReferenceException
2int 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:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1 enable
1public class Article
2{
3public string Title { get; set; } // Null olamaz (uyarı verir)
4public string? Content { get; set; } // Null olabilir (güvenli)
5public Author? Writer { get; set; } // Null olabilir
6}
7
8public class Author
9{
10public string Name { get; set; }
11}

`?` işareti "bu null olabilir" anlamında.

1var article = new Article { Title = "Rehber" };
2
3if (article.Writer!= null)
4{
5Console.WriteLine(article.Writer.Name); // Güvenli
6}
7else
8{
9Console.WriteLine("Yazar yok");
10}

Çıktı:

1Yazar yok
1string writerName = article.Writer?.Name?? "Bilinmiyor";
2Console.WriteLine(writerName);

Çıktı:

1Bilinmiyor

Nullable 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.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz