Bagikan melalui


Kata kunci yang ditetapkan (Referensi C#)

Kata kunci set menentukan metode pengakses di dalam properti atau pengindeks yang menetapkan nilai ke properti atau elemen pengindeks. Untuk informasi dan contoh selengkapnya, lihat Properti, Properti yang diterapkan secara otomatis, dan Pengindeks.

Referensi bahasa C# mendokumentasikan versi bahasa C# yang paling baru dirilis. Ini juga berisi dokumentasi awal untuk fitur dalam pratinjau publik untuk rilis bahasa yang akan datang.

Dokumentasi mengidentifikasi fitur apa pun yang pertama kali diperkenalkan dalam tiga versi terakhir bahasa atau dalam pratinjau publik saat ini.

Petunjuk / Saran

Untuk menemukan kapan fitur pertama kali diperkenalkan di C#, lihat artikel tentang riwayat versi bahasa C#.

Untuk kasus sederhana di mana properti get dan set pengakses tidak melakukan operasi lain selain mengatur atau mengambil nilai di bidang pencadangan privat, gunakan properti yang diterapkan secara otomatis. Contoh berikut menerapkan Hours sebagai properti yang diimplementasikan secara otomatis.

class TimePeriod3
{
    public double Hours { get; set; }
}

Penting

Anda tidak dapat menggunakan properti yang diterapkan secara otomatis 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.

Anda mungkin perlu mengimplementasikan salah satu badan aksesor. Kata field kunci, ditambahkan dalam C# 14, mendeklarasikan properti yang didukung bidang. Gunakan properti yang didukung bidang untuk memungkinkan pengkompilasi menghasilkan satu aksesor saat Anda menulis yang lain dengan tangan. field Gunakan kata kunci 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");
    }
}

Sering kali, pengakses set terdiri dari satu pernyataan yang menetapkan nilai, seperti yang terjadi pada contoh sebelumnya. Anda dapat menerapkan pengakses set sebagai anggota berisi ekspresi. Contoh berikut menerapkan pengakses get dan set sebagai anggota berisi ekspresi.

class TimePeriod2
{
    private double _seconds;

    public double Seconds
    {
        get => _seconds;
        set => _seconds = value;
    }
}

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#.

Lihat juga