0Pricing
C# Academy · Ders

Null Birleştirme İşleçleri

?? ve ??= varsayılanları.

Null Birleştirme İşleçleri, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.

Yedek Değer Sağlama

Çoğu zaman bir değer varsa onu, null ise varsayılan bir değeri kullanmak istersiniz. Null birleştirme işleci ?? tam olarak bunu yapar.

a ?? b şu anlama gelir: a null değilse ayı, aksi hâlde byi kullanın.

string input = null;
string name = input ?? "Guest";
System.Console.WriteLine(name);

?? Nasıl Değerlendirilir

Önce sol taraf değerlendirilir. Sol taraf null değilse sağ taraf hiçbir zaman değerlendirilmez.

Bu kısa devre davranışı, maliyetli bir yedek değerin yalnızca gerçekten gerektiğinde hesaplanmasını sağlar.

string cached = "data";
string value = cached ?? Compute();
System.Console.WriteLine(value);
// Compute() is never called here

Null Kabul Eden Değer Türleriyle Çalışma

?? işleci, null kabul eden değer türlerinin sarmalamasını da kaldırır. int? maybe ifadesini ?? 0 ile birleştirmek, düz ve null kabul etmeyen bir int üretir.

Bu, varsayılan bir değerle int? türünden int türüne dönüşmenin temiz bir yoludur.

int? maybe = null;
int sure = maybe ?? 0;
System.Console.WriteLine(sure);

Çalıştırılabilir Bir Örnek

Bu program, null olabilecek bir ayarı okur ve varsayılan bir değere başvurur. Yedek değerin nasıl çalıştığını görmek için programı çalıştırın.

using System;

class Program
{
    static void Main()
    {
        string theme = null;
        string active = theme ?? "light";
        Console.WriteLine("Theme: " + active);
    }
}

?? İşlecini Zincirleme

Birden çok yedek değeri zincirleyebilirsiniz. İfade, soldan sağa ilk null olmayan değeri seçer.

a ?? b ?? c, son çare olarak cyi kullanmadan önce sırasıyla ayı, ardından byi dener.

string a = null;
string b = null;
string c = "default";
System.Console.WriteLine(a ?? b ?? c);

??= İşleci

Null birleştirme ataması ??=, sağ tarafı yalnızca sol taraf o anda null ise atar.

x ??= y, if (x == null) x = y; ifadesinin kısa yazımıdır ve x zaten bir değer taşıyorsa onu değiştirmez.

string config = null;
config ??= "default";
System.Console.WriteLine(config);
config ??= "ignored";
System.Console.WriteLine(config);

??= ile Gecikmeli Başlatma

??= işlecinin yaygın bir kullanımı gecikmeli başlatmadır: bir nesneyi yalnızca ilk kez gerektiğinde oluşturmak.

Daha sonraki çağrılarda alan zaten ayarlanmış olur; bu nedenle ??= hiçbir şey yapmaz.

System.Collections.Generic.List<int> items = null;
items ??= new System.Collections.Generic.List<int>();
items.Add(1);
System.Console.WriteLine(items.Count);

?. ve ?? Birlikte Kullanımı

?. ile ?? işlecini birlikte kullanmak son derece yaygındır. ?. özel durumu önler, ?? ise zincir null olduğunda bir değer sağlar.

user?.Name ?? "Unknown", adı güvenle okur ve varsayılan olarak "Unknown" değerini kullanır.

string s = null;
int length = s?.Length ?? -1;
System.Console.WriteLine(length);

Tam Bir Programda ??

Burada ?. ve ?? birlikte çalışarak güvenli bir uzunluk yazdırır. Yedek değeri görmek için programı null bir dizeyle çalıştırın.

using System;

class Program
{
    static void Main()
    {
        string username = null;
        string display = username ?? "anonymous";
        Console.WriteLine(display);
        Console.WriteLine(username?.Length ?? 0);
    }
}

Null Durumunda ?? ile Özel Durum Oluşturma

?? işlecinin sağ tarafı, throw da dâhil olmak üzere herhangi bir ifade olabilir. Bu, ?? işlecini beklenmeyen bir null durumunda hemen başarısız olmak için kısa bir yol hâline getirir.

name ?? throw new ArgumentNullException(nameof(name)), adı döndürür; ad null ise özel durum oluşturur.

string Validate(string name) =>
    name ?? throw new System.ArgumentNullException(nameof(name));

Sağdan Birleşmeli Davranış

?? sağdan birleşmelidir; bu nedenle a ?? b ?? c, a ?? (b ?? c) biçiminde gruplanır.

Uygulamada bu yine "ilk null olmayan değer kazanır" anlamına gelir; ancak karmaşık ifadeleri incelerken bunu bilmek yararlıdır.

int? a = null;
int? b = null;
int result = a ?? b ?? 99;
System.Console.WriteLine(result);

Hızlı Kontrol

Null birleştirme işleçleriyle ilgili anlayışınızı sınayın.

Özet

??, sol taraf null değilse onu, aksi hâlde sağ tarafı döndürür ve zincirlenebilir. ??= yalnızca hedef null olduğunda atama yapar; bu da onu gecikmeli başlatma için ideal kılar.

Güvenli ve kısa null işleme için bunları ?. ile birleştirin; hatta hemen başarısız olmak için ?? throw kullanın.

Sıkça Sorulan Sorular

“Null Birleştirme İşleçleri” dersi ücretsiz mi?

Evet — “Null Birleştirme İşleçleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.

“Null Birleştirme İşleçleri” dersinde ne öğreneceğim?

?? ve ??= varsayılanları. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Null Birleştirme İşleçleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Nullable Değer Türleri
  2. Null Koşullu İşleç
  3. Null Birleştirme İşleçleri
  4. Null Değerlere Karşı Koruma
← C# Academy Sayfasına Dön