Bagikan melalui


field - Deklarasi properti yang didukung bidang

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.

Kata kunci fieldkontekstual , ditambahkan sebagai fitur pratinjau di C# 13, dapat digunakan dalam aksesor properti untuk mengakses bidang backing kompilator yang disintesis dari properti. Sintaks ini memungkinkan Anda menentukan isi atau get set pengakses dan membiarkan pengkompilasi menghasilkan pengakses lain seperti pada properti yang diimplementasikan secara otomatis.

Penambahan field kata kunci kontekstual memberikan jalur yang lancar untuk menambahkan manfaat seperti pemeriksaan rentang ke properti yang diimplementasikan secara otomatis. Praktik ini ditunjukkan dalam contoh berikut:

class TimePeriod4
{
    public double Hours {
        get;
        set => field = (value >= 0)
            ? value
            : throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
    }
}

Anda mungkin menerapkan Hours properti sebagai properti yang diimplementasikan secara otomatis. Kemudian, Anda menemukan bahwa Anda ingin melindungi dari nilai negatif. Anda menggunakan field dan menyediakan pemeriksaan rentang di set aksesor. Anda tidak perlu mendeklarasikan bidang backing dengan tangan dan menyediakan isi get untuk aksesor.

Untuk informasi selengkapnya, lihat artikel Properti dan Pengindeks.

Spesifikasi bahasa C#

Untuk informasi selengkapnya, lihat Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.