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); // AdaMenghilangkan 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); // Linrequired 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 30required 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); // 10Bidang 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); // abc123Konstruktor 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); // SamMencampurkan 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 0required 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 PenMenggantikan 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 | HiMaksud 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); // adaMenerapkan 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:8080Pemeriksaan 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
inituntuk 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
- Setter Khusus init
- Pengubah required
- Pola Objek Immutable
- Ekspresi with pada Record