Altbilgi içeriğine atla
Iron Academy Logo
C# öğrenin
C# öğrenin

Diğer Kategoriler

C# Null Birleştirme Operatörünü Anlama

[[academy-video-youtube({"vid": "aIp0jUr6A24", "start_time": "0", "title": "C# Boşluk Birleştirme Operatörünü (??) Anlamak ve ??=)", "creator": "Gerald Versluis", "length": "12m 43s"})]]

C#'deki null birleştirme operatörü (??), geliştiricilerin null kontrolü mantığını basitleştirmesine olanak tanır, bu da kodun karmaşıklığını azaltır ve okunabilirliği artırır. Uzun if-else koşulları yazmak yerine, bu operatör null ile karşılaşıldığında yedek değerler atamak için özlü bir yol sunar. Bu makalede, Gerald Versluis'in "C# Null Birleştirme Operatörünü (?? Anlamak ve ??=)." Videonun önemli bölümlerini inceleyeceğiz ve Gerald'in bu kullanışlı C# özelliğini nasıl gösterdiğini analiz edeceğiz.

Giriş

Videonun başında Gerald, null birleşim operatörünü, C#'ta null kontrolü için gereken kod satırlarını önemli ölçüde azaltan güçlü bir özellik olarak tanıtıyor. Bu operatörün, koşullu kontrolleri basitleştirip kodu daha okunabilir hale getirdiğini vurguluyor. Faydalarını göstermek için Gerald, null birleştirme operatörünün çeşitli kullanım durumlarını uyguladığı ve açıkladığı bir örnek uygulama üzerinden ilerliyor.

Örnek Uygulama Taslağı

Gerald, basit bir konsol uygulaması kurarak başlar. Önceki videolarda, demolar için try.dot.net web sitesini kullandığını belirtiyor, ancak sürüm sınırlamaları (yalnızca C# 7'yi destekliyor) nedeniyle Visual Studio for Mac'e geçiyor. Görsellerin Visual Studio for Windows üzerinde de çalışacağını garanti eder.

Demoyu hazırlamak için, Gerald tek bir Name özelliğine sahip temel bir Person sınıfı oluşturur:

public class Person 
{
    public string Name { get; set; }
}
public class Person 
{
    public string Name { get; set; }
}

Daha sonra, bu sınıfın bir örneğini başlatır ve null birleştirme operatörünün gerçek dünya senaryolarında nasıl çalıştığını gösterir.

Null Kontrolünü Null-Birleştirme Operatörü (??) ile Değiştirin

Gerald şimdi null kontrol mantığını basitleştirmek için null birleşim operatörü (??) kullanmanın nasıl mümkün olduğunu göstermektedir. Null değerini Name özelliğine atar ve ardından ?? kullanır yedek bir değer sağlamak için:

var name = person.Name ?? "Gerald";
var name = person.Name ?? "Gerald";

Gerald, bu operatörden önce, geliştiricilerin bir if ifadesi kullandıklarını açıklar:

string name;
if (person.Name == null)
{
    name = "Gerald";
}
else
{
    name = person.Name;
}
string name;
if (person.Name == null)
{
    name = "Gerald";
}
else
{
    name = person.Name;
}

?? kullanarak, bu mantık tek bir satıra indirgenir. person.Name null olduğunda, "Gerald" atanır; aksi takdirde, person.Name değerini korur. Programı çalıştırır ve çıktının doğru olduğunu onaylar.

İstisna Fırlatmak için Null Birleştirme

Sonra, Gerald başka bir kullanım durumunu inceliyor: null birleştirme operatörünü kullanarak istisnalar atmak. Yedek bir değer sağlamaktan ziyade, karşılaşılan null durumunda nasıl bir istisna atılacağını gösteriyor:

var name = person.Name ?? throw new ArgumentNullException(nameof(person.Name), "Name cannot be null");
var name = person.Name ?? throw new ArgumentNullException(nameof(person.Name), "Name cannot be null");

Gerald, null'ün izin verilmemesi gereken yöntem parametreleri veya özelliklerle çalışırken bunun özellikle kullanışlı olduğunu vurgular. Bu özelliğin proje ayarlarına bağlı olarak C# 7 veya 8'de tanıtıldığını açıklıyor. person.Name için null bir değerle kodu çalıştırmak, ArgumentNullException sonucunu verir, bu da istenmeyen null referansları etkili bir şekilde önler.

Null Birlestirme Bileşik Atama (??=)

Gerald, varsayılan değerler atamak için daha da etkili bir yol sağlayan null birliktelik bileşik atama (??=) operatörünü tartışmaya devam ediyor. Bunun yerine şöyle yazın:

if (person.Name == null)
{
    person.Name = "Gerald";
}
if (person.Name == null)
{
    person.Name = "Gerald";
}

Bunu şöyle basitleştirir:

person.Name ??= "Gerald";
person.Name ??= "Gerald";

Gerald, ??= operatörünün yalnızca sol taraftaki operand null olduğunda belirtilen değeri atadığını açıklar. person.Name zaten bir değere sahipse, değişmeden kalır. Bu operatör, özellikle alanları başlatmak veya değişkenlerin asla null kalmamasını sağlamak için kullanışlıdır.

Null Koşullu Operatör ile Birleştirme

Son bölümde, Gerald, null birleşim (coalescing) operatörünün, null koşullu operatör (?.) ile nasıl birleştirilebildiğini göstermektedir. Null koşullu operatör, bir NullReferenceException sebep olmadan özelliklere güvenli erişim sağlar. Örnek verir:

var length = person?.Name?.Length ?? 0;
var length = person?.Name?.Length ?? 0;

Gerald, person veya Name null ise, sonucun bir istisna fırlatmak yerine varsayılan olarak 0 olacağından emin olduğunu açıklar. Bu kombinasyon, null referans türleri veya karmaşık nesne hiyerarşileriyle çalışırken faydalıdır.

Sonuç

Video boyunca, Gerald Versluis, null birleştirme operatörünün (??) ve null birleştirme bileşik atama operatörünün (??=) gücünü etkili bir şekilde açıklıyor. Bu operatörlerin geleneksel null kontrollerini nasıl değiştirebileceğini, kodu daha özlü ve okunabilir hale getirdiğini gösteriyor. Bu özelliklerden yararlanarak geliştiriciler daha temiz ve daha verimli C# uygulamaları yazabilir.

Bu kavramların nasıl uygulandığını görmekle ilgileniyorsanız, Gerald Versluis'in "C# Null Birleştirme Operatörü (??) Anlama" konulu tam videosuna göz atın. and ??=).

Hero Worlddot related to C# Null Birleştirme Operatörünü Anlama
Hero Affiliate related to C# Null Birleştirme Operatörünü Anlama

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara