0Pricing
C# Academy · Pelajaran

Pengubah required

Wajibkan pemanggil mengatur properti penting.

Pengubah required 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.

Pengubah required

Pengubah required memaksa pemanggil untuk mengatur properti atau bidang saat membuat objek. Dengan demikian, galat "Anda lupa memberikan nilai" dipindahkan dari waktu berjalan ke waktu kompilasi.

using System;

class Person {
    public required string Name { get; init; }
}

var p = new Person { Name = "Ada" };
Console.WriteLine(p.Name); // Ada

Menghilangkan Anggota required Menyebabkan Kegagalan Kompilasi

Jika pemanggil tidak menyertakan anggota required, kompiler melaporkan galat sebelum program dijalankan.

using System;

class Person {
    public required string Name { get; init; }
}

// var bad = new Person { }; // compile error: Name is required
var good = new Person { Name = "Lin" };
Console.WriteLine(good.Name); // Lin

required dengan Inisialisasi

required sangat cocok dipadukan dengan init: nilainya harus diberikan saat konstruksi dan tidak dapat diubah setelahnya.

using System;

class Config {
    public required string Url { get; init; }
    public int Timeout { get; init; } = 30;
}

var c = new Config { Url = "https://api" };
Console.WriteLine(c.Url + " " + c.Timeout); // https://api 30

required dengan set

Anda juga dapat menandai properti yang dapat diatur sebagai required. Properti tersebut harus diinisialisasi, tetapi tetap dapat diubah setelahnya.

using System;

class Box {
    public required int Size { get; set; }
}

var b = new Box { Size = 5 };
b.Size = 10; // still mutable
Console.WriteLine(b.Size); // 10

Bidang required

Bidang juga dapat ditetapkan sebagai required, bukan hanya properti.

using System;

class Token {
    public required string Value;
}

var t = new Token { Value = "abc123" };
Console.WriteLine(t.Value); // abc123

Konstruktor dan required

Jika konstruktor menetapkan anggota required, pemanggil yang menggunakan konstruktor tersebut tidak perlu lagi menetapkannya. Gunakan [SetsRequiredMembers] untuk memberi tahu kompiler.

using System;
using System.Diagnostics.CodeAnalysis;

class Person {
    public required string Name { get; init; }
    [SetsRequiredMembers]
    public Person(string name) => Name = name;
}

Console.WriteLine(new Person("Sam").Name); // Sam

Mencampurkan required dan Opsional

Hanya anggota yang Anda tandai yang wajib diisi; anggota lainnya tetap opsional dengan nilai bawaannya.

using System;

class Account {
    public required string Owner { get; init; }
    public decimal Balance { get; init; } = 0m;
}

var a = new Account { Owner = "Kai" };
Console.WriteLine(a.Owner + " " + a.Balance); // Kai 0

required dalam Pewarisan

Anggota required diwariskan. Kelas turunan dapat menambahkan anggota required miliknya sendiri, dan semuanya harus dipenuhi.

using System;

class Base { public required int Id { get; init; } }
class Item : Base { public required string Name { get; init; } }

var i = new Item { Id = 1, Name = "Pen" };
Console.WriteLine(i.Id + " " + i.Name); // 1 Pen

Menggantikan Konstruktor yang Rumit

required + init sering menggantikan konstruktor besar: Anda memperoleh anggota wajib dengan sintaks penginisialisasi objek yang mudah dibaca.

using System;

class Email {
    public required string To { get; init; }
    public required string Subject { get; init; }
    public string Body { get; init; } = "";
}

var e = new Email { To = "a@b.com", Subject = "Hi" };
Console.WriteLine(e.To + " | " + e.Subject); // a@b.com | Hi

Maksud yang Jelas dengan Sendirinya

Menandai anggota sebagai required mendokumentasikan nilai mana yang penting, sehingga tipe tersebut lebih mudah digunakan dengan benar.

using System;

class Registration {
    public required string Username { get; init; }
    public required string Password { get; init; }
    public bool Newsletter { get; init; }
}

var r = new Registration { Username = "ada", Password = "x" };
Console.WriteLine(r.Username); // ada

Menerapkan Semuanya

Tipe yang menggabungkan anggota required, opsional, dan tervalidasi.

using System;

class Server {
    public required string Host { get; init; }
    public int Port { get; init; } = 8080;
    public string Address => Host + ":" + Port;
}

var s = new Server { Host = "localhost" };
Console.WriteLine(s.Address); // localhost:8080

Pemeriksaan Singkat

Pastikan Anda memahami jaminan yang diberikan pengubah required.

Ringkasan

Anda telah mempelajari pengubah required.

  • Pengubah ini memaksa pemanggil menginisialisasi anggota saat pembuatan, dan hal tersebut diperiksa oleh kompiler.
  • Pengubah ini dapat dipadukan dengan init untuk anggota wajib yang tidak dapat diubah.
  • [SetsRequiredMembers] memungkinkan konstruktor memenuhi persyaratan tersebut.
  • Anggota required diwariskan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pengubah required” gratis?

Ya — teks lengkap “Pengubah required” 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 “Pengubah required”?

Wajibkan pemanggil mengatur properti penting. 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 “Pengubah required” 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. Setter Khusus init
  2. Pengubah required
  3. Pola Objek Immutable
  4. Ekspresi with pada Record
← Kembali ke C# Academy