0Pricing
C# Academy · Pelajaran

Operator Null-Coalescing

Gunakan ?? dan ??= untuk menyediakan nilai cadangan.

Operator Null-Coalescing adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Operator ??

Operator penggabungan nilai kosong ?? mengembalikan operan kirinya jika tidak bernilai kosong; jika tidak, operator ini mengembalikan operan kanannya. Operator ini merupakan cara ringkas untuk menyediakan nilai cadangan.

using System;

class Program {
    static void Main() {
        int? maybe = null;
        int value = maybe ?? -1;
        Console.WriteLine(value);
    }
}

?? Memilih Nilai Pertama yang Tidak Kosong

Jika sisi kiri memiliki nilai, nilai tersebut yang dipilih dan sisi kanan diabaikan.

using System;

class Program {
    static void Main() {
        int? a = 7;
        Console.WriteLine(a ?? 0);
    }
}

?? dengan Tipe Referensi

?? juga berfungsi untuk tipe referensi seperti string, dengan memberikan teks bawaan ketika nilainya kosong.

using System;

class Program {
    static void Main() {
        string name = null;
        Console.WriteLine(name ?? "Guest");
    }
}

Merangkai ??

Anda dapat merangkai beberapa nilai cadangan; nilai pertama yang tidak kosong akan digunakan.

using System;

class Program {
    static void Main() {
        string a = null, c = "third";
        string b = null;
        Console.WriteLine(a ?? b ?? c ?? "last");
    }
}

?? Mengembalikan Tipe Dasar

Jika sisi kiri adalah int? dan sisi kanan adalah int, hasilnya berupa int biasa karena null tidak mungkin lagi terjadi.

using System;

class Program {
    static void Main() {
        int? maybe = null;
        int sure = maybe ?? 0;
        Console.WriteLine(sure + 5);
    }
}

Operator ??=

Penugasan penggabungan null ??= menetapkan sisi kanan hanya jika sisi kiri saat ini bernilai null.

using System;

class Program {
    static void Main() {
        int? count = null;
        count ??= 10;
        Console.WriteLine(count);
    }
}

??= Mempertahankan Nilai yang Ada

Jika variabel sudah memiliki nilai, ??= tidak melakukan apa pun.

using System;

class Program {
    static void Main() {
        string config = "custom";
        config ??= "default";
        Console.WriteLine(config);
    }
}

Inisialisasi Tertunda dengan ??=

??= sangat cocok untuk menetapkan nilai pada kali pertama, lalu mempertahankannya setelah itu.

using System;

class Program {
    static string cache = null;
    static string GetData() {
        cache ??= "loaded";
        return cache;
    }
    static void Main() {
        Console.WriteLine(GetData());
        Console.WriteLine(GetData());
    }
}

?? vs GetValueOrDefault

Keduanya menyediakan nilai pengganti, tetapi ?? lebih fleksibel: operator ini dapat digunakan pada tipe referensi dan memungkinkan nilai pengganti berupa ekspresi apa pun.

using System;

class Program {
    static void Main() {
        int? n = null;
        Console.WriteLine(n ?? 5);
        Console.WriteLine(n.GetValueOrDefault(5));
    }
}

?? dalam Argumen Metode

Gunakan ?? secara langsung untuk menyediakan nilai bawaan tepat di tempat nilai diperlukan.

using System;

class Program {
    static void Greet(string name) {
        Console.WriteLine("Hello, " + name);
    }
    static void Main() {
        string input = null;
        Greet(input ?? "friend");
    }
}

Perilaku Hubung Singkat

Sisi kanan ?? dievaluasi hanya ketika sisi kiri bernilai null, mirip dengan evaluasi hubung singkat.

using System;

class Program {
    static int Compute() {
        Console.WriteLine("Computed");
        return 42;
    }
    static void Main() {
        int? known = 1;
        int result = known ?? Compute();
        Console.WriteLine(result);
    }
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang operator penggabungan null.

Ringkasan

Operator ?? mengembalikan nilai kiri jika nilainya bukan null; jika tidak, operator ini mengembalikan nilai kanan, dan operator tersebut dapat dirangkai. Tipe hasil tidak lagi nullable ketika nilai pengganti yang bukan null diberikan.

??= hanya menetapkan nilai ketika target bernilai null, sehingga operator ini ideal untuk nilai bawaan dan inisialisasi tertunda. Keduanya hanya mengevaluasi sisi kanan jika diperlukan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Operator Null-Coalescing” gratis?

Ya — teks lengkap “Operator Null-Coalescing” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Operator Null-Coalescing”?

Gunakan ?? dan ??= untuk menyediakan nilai cadangan. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Operator Null-Coalescing” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memperkenalkan Tipe Nilai Nullable
  2. Properti HasValue dan Value
  3. Operator Null-Coalescing
  4. Nullable dalam Perhitungan
← Kembali ke C# Academy