Bagikan melalui


Properti yang Diimplementasikan Secara Otomatis (Panduan Pemrograman C#)

Properti yang diterapkan secara otomatis membuat deklarasi properti lebih ringkas ketika tidak ada logika tambahan yang diperlukan di pengakses properti. Mereka juga memungkinkan kode klien untuk membuat objek. Saat Anda mendeklarasikan properti seperti yang ditunjukkan di dalam contoh berikut, kompilator membuat bidang dukungan anonim privat yang hanya dapat diakses melalui pengakses properti get dan set. init pengakses juga dapat dinyatakan sebagai properti yang diterapkan secara otomatis.

Contoh

Contoh berikut ini menunjukkan kelas sederhana yang memiliki beberapa properti yang diimplementasikan secara otomatis:

// This class is mutable. Its data can be modified from
// outside the class.
public class Customer
{
    // Auto-implemented properties for trivial get and set
    public double TotalPurchases { get; set; }
    public string Name { get; set; }
    public int CustomerId { get; set; }

    // Constructor
    public Customer(double purchases, string name, int id)
    {
        TotalPurchases = purchases;
        Name = name;
        CustomerId = id;
    }

    // Methods
    public string GetContactInfo() { return "ContactInfo"; }
    public string GetTransactionHistory() { return "History"; }

    // .. Additional methods, events, etc.
}

class Program
{
    static void Main()
    {
        // Initialize a new object.
        Customer cust1 = new Customer(4987.63, "Northwind", 90108);

        // Modify a property.
        cust1.TotalPurchases += 499.99;
    }
}

Anda tidak dapat mendeklarasikan properti yang diimplementasikan secara otomatis di dalam antarmuka. Properti yang diimplementasikan secara otomatis mendeklarasikan bidang dukungan instans privat, dan antarmuka mungkin tidak mendeklarasikan bidang instans. Mendeklarasikan properti di dalam antarmuka tanpa mendefinisikan isi mendeklarasikan sebuah properti dengan pengakses yang harus diimplementasikan oleh setiap jenis yang mengimplementasikan antarmuka tersebut.

Anda dapat menginisialisasi properti yang diimplementasikan secara otomatis mirip dengan bidang:

public string FirstName { get; set; } = "Jane";

Kelas yang ditampilkan di dalam contoh sebelumnya dapat diubah. Kode klien dapat mengubah nilai di dalam objek setelah pembuatan. Di dalam kelas kompleks yang berisi perilaku (metode) yang signifikan serta data, sering kali perlu memiliki properti publik. Namun, untuk kelas kecil atau struct yang hanya merangkum sekumpulan nilai (data) dan memiliki sedikit atau tanpa perilaku sama sekali, Anda harus menggunakan salah satu opsi berikut untuk membuat objek tidak dapat diubah:

  • Deklarasikan hanya pengakses get (tidak dapat diubah di mana-mana, kecuali oleh konstruktor).
  • Deklarasikan pengakses get dan pengakses init (tidak dapat diubah di mana-mana kecuali selama konstruksi objek).
  • Deklarasikan pengakses set sebagai privat (tidak dapat diubah ke konsumen).

Untuk informasi selengkapnya, lihat Cara menerapkan kelas yang ringan dengan properti yang diterapkan secara otomatis.

Lihat juga