Membuat properti hanya dengan getter membuat properti Anda menjadi hanya-baca untuk kode apa pun yang ada di luar kelas.
Namun Anda dapat mengubah nilai menggunakan metode yang disediakan oleh kelas Anda:
public class FuelConsumption {
private double fuel;
public double Fuel
{
get { return this.fuel; }
}
public void FillFuelTank(double amount)
{
this.fuel += amount;
}
}
public static void Main()
{
FuelConsumption f = new FuelConsumption();
double a;
a = f.Fuel; // Will work
f.Fuel = a; // Does not compile
f.FillFuelTank(10); // Value is changed from the method's code
}
Menyetel bidang privat kelas readonlyAnda memungkinkan Anda menyetel nilai bidang hanya sekali (menggunakan tugas sebaris atau di konstruktor kelas). Anda tidak akan dapat mengubahnya nanti.
public class ReadOnlyFields {
private readonly double a = 2.0;
private readonly double b;
public ReadOnlyFields()
{
this.b = 4.0;
}
}
readonly bidang kelas sering digunakan untuk variabel yang diinisialisasi selama konstruksi kelas, dan tidak akan pernah diubah nanti.
Singkatnya, jika Anda perlu memastikan nilai properti Anda tidak akan pernah berubah dari luar, tetapi Anda harus bisa mengubahnya dari dalam kode kelas Anda, gunakan properti "Get-only".
Jika Anda perlu menyimpan nilai yang tidak akan pernah berubah setelah nilai awalnya ditetapkan, gunakan readonlybidang.
public double FuelConsumption => Fuel;