Kata kunci get
Kata kunci get
menentukan metode aksesor di dalam properti atau pengindeks yang mengembalikan nilai properti atau elemen pengindeks. Untuk informasi lebih lanjut, lihat Properti , Properti yang Diterapkan Secara Otomatis , dan Pengindeks .
Untuk kasus sederhana di mana properti get
dan set
pengakses tidak melakukan operasi lain selain mengatur atau mengambil nilai di bidang pendukung privat, Anda dapat memanfaatkan dukungan pengkompilasi C# untuk properti yang diterapkan secara otomatis. Contoh berikut menerapkan Hours
sebagai properti yang diimplementasikan secara otomatis.
class TimePeriod3
{
public double Hours { get; set; }
}
Penting
Properti yang diterapkan secara otomatis tidak diizinkan untuk deklarasi properti antarmuka atau deklarasi penerapan untuk properti parsial. Kompilator menginterpretasikan sintaks yang cocok dengan properti yang diimplementasikan secara otomatis sebagai deklarasi deklarasi, bukan deklarasi penerapan.
Sering kali, aksesor get
terdiri dari satu pernyataan yang mengembalikan nilai, seperti yang terjadi pada contoh sebelumnya. Anda dapat menerapkan pengakses get
sebagai anggota berisi ekspresi. Contoh berikut menerapkan aksesor get
dan set
sebagai anggota berisi ekspresi.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
Anda mungkin menemukan bahwa Anda perlu mengimplementasikan salah satu badan aksesor. Anda dapat menggunakan properti yang didukung bidang untuk memungkinkan pengkompilasi menghasilkan satu aksesor saat Anda menulis yang lain dengan tangan. Anda menggunakan field
kata kunci, ditambahkan sebagai fitur pratinjau di C# 13, untuk mengakses bidang backing yang disintesis kompilator:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
Penting
Kata field
kunci adalah fitur pratinjau di C# 13. Anda harus menggunakan .NET 9 dan mengatur elemen Anda <LangVersion>
ke preview
dalam file proyek Anda untuk menggunakan field
kata kunci kontekstual.
Anda harus berhati-hati menggunakan field
fitur kata kunci di kelas yang memiliki bidang bernama field
. Kata kunci baru field
membayangi bidang bernama field
dalam cakupan aksesor properti. Anda dapat mengubah nama field
variabel, atau menggunakan @
token untuk mereferensikan field
pengidentifikasi sebagai @field
. Anda dapat mempelajari lebih lanjut dengan membaca spesifikasi fitur untuk field
kata kunci.
Contoh berikut menentukan pengakses get
dan set
untuk properti bernama Seconds
. Contoh menggunakan bidang privat bernama _seconds
untuk mendukung nilai properti.
class TimePeriod
{
private double _seconds;
public double Seconds
{
get { return _seconds; }
set
{
if (value < 0)
{
throw new ArgumentOutOfRangeException(nameof(value), "The value of the time period must be non-negative.");
}
_seconds = value;
}
}
}
Spesifikasi Bahasa C#
Untuk informasi selengkapnya, lihat Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.