0Pricing
C# Academy · Pelajaran

Properti HasValue dan Value

Periksa dan akses nilai nullable dengan aman.

Properti HasValue dan Value adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Dua Properti Utama

Setiap nilai yang dapat bernilai kosong menyediakan HasValue (sebuah bool) dan Value (nilai yang mendasarinya). Keduanya merupakan alat untuk memeriksanya dengan aman.

using System;

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

HasValue Memeriksa Keberadaan Nilai

HasValue bernilai true ketika terdapat nilai sebenarnya dan bernilai false ketika nilainya kosong.

using System;

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

Membaca Nilai dengan Aman

Selalu periksa HasValue sebelum membaca Value, karena membaca Value saat nilainya kosong akan memunculkan pengecualian.

using System;

class Program {
    static void Main() {
        int? n = 42;
        if (n.HasValue) {
            Console.WriteLine(n.Value * 2);
        }
    }
}

Mengakses Nilai Kosong Memunculkan Pengecualian

Jika Anda membaca Value ketika nilainya kosong, C# memunculkan InvalidOperationException. Pemeriksaan tersebut melindungi Anda.

using System;

class Program {
    static void Main() {
        int? n = null;
        try {
            Console.WriteLine(n.Value);
        } catch (InvalidOperationException) {
            Console.WriteLine("Caught: no value");
        }
    }
}

GetValueOrDefault

GetValueOrDefault() mengembalikan nilainya jika tersedia; jika tidak, metode ini mengembalikan nilai bawaan tipe tersebut (0 untuk int, salah untuk bool).

using System;

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

GetValueOrDefault dengan Nilai Cadangan

Berikan argumen untuk memilih nilai cadangan Anda sendiri: GetValueOrDefault(99) mengembalikan 99 ketika nilainya kosong.

using System;

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

Pola: Periksa lalu Gunakan

Pola umum menggabungkan HasValue dan Value ke dalam percabangan yang rapi.

using System;

class Program {
    static void Describe(int? score) {
        if (score.HasValue)
            Console.WriteLine("Score is " + score.Value);
        else
            Console.WriteLine("No score yet");
    }
    static void Main() {
        Describe(88);
        Describe(null);
    }
}

Konversi Implisit Kembali

Anda dapat menetapkan nilai yang dapat bernilai kosong ke tipe biasa hanya setelah memastikan bahwa nilai tersebut tersedia, lalu membaca Value.

using System;

class Program {
    static void Main() {
        int? maybe = 15;
        if (maybe.HasValue) {
            int real = maybe.Value;
            Console.WriteLine(real + 5);
        }
    }
}

Nilai Bawaan Tipe yang Dapat Bernilai Kosong

Tipe yang dapat bernilai kosong dan tidak ditetapkan secara eksplisit secara bawaan bernilai kosong, sehingga HasValue menunjukkan bahwa tidak ada nilai.

using System;

class Program {
    static void Main() {
        int? n = default;
        Console.WriteLine(n.HasValue);
    }
}

Menggunakan dalam Agregasi

Lakukan perulangan pada data dan lewati nilai kosong menggunakan HasValue untuk menghitung total dengan aman.

using System;

class Program {
    static void Main() {
        int?[] readings = { 10, null, 5, null, 8 };
        int sum = 0;
        foreach (var r in readings)
            if (r.HasValue) sum += r.Value;
        Console.WriteLine(sum);
    }
}

GetValueOrDefault dalam Perulangan

GetValueOrDefault dapat menyederhanakan kode ketika nilai kosong seharusnya diperlakukan sebagai nol.

using System;

class Program {
    static void Main() {
        int?[] readings = { 10, null, 5 };
        int sum = 0;
        foreach (var r in readings)
            sum += r.GetValueOrDefault();
        Console.WriteLine(sum);
    }
}

Uji Cepat

Uji pengetahuan Anda tentang properti tipe yang dapat bernilai kosong.

Ringkasan

HasValue memberi tahu apakah suatu nilai yang dapat bernilai kosong menyimpan nilai, sedangkan Value mengambilnya. Namun, membaca Value saat nilainya kosong akan memunculkan pengecualian.

GetValueOrDefault() mengembalikan nilai dengan aman atau nilai cadangan (nilai bawaan tipe atau nilai yang Anda berikan), sehingga ideal untuk penjumlahan dan pembacaan yang aman.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Properti HasValue dan Value” gratis?

Ya — teks lengkap “Properti HasValue dan Value” 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 “Properti HasValue dan Value”?

Periksa dan akses nilai nullable dengan aman. 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 2 dari 4.

Berapa lama pelajaran “Properti HasValue dan Value” 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