Saya akan mengambil langkah lebih jauh, dan membawanya ke 3 kasing. Meskipun ada variasi pada masing-masing, ini adalah aturan yang saya gunakan sebagian besar waktu ketika pemrograman C #.
Dalam kasus 2 & 3, selalu buka Accessor Properti (bukan variabel bidang). Dan dalam kasus 1, Anda diselamatkan bahkan dari harus membuat pilihan ini.
1.) Properti tidak berubah (diteruskan ke konstruktor, atau dibuat pada waktu konstruksi). Dalam hal ini, saya menggunakan variabel bidang, dengan properti hanya-baca. Saya memilih ini daripada setter pribadi, karena setter pribadi tidak menjamin keabadian.
public class Abc
{
private readonly int foo;
public Abc(int fooToUse){
foo = fooToUse;
}
public int Foo { get{ return foo; } }
}
2.) variabel POCO. Variabel sederhana yang dapat / diatur pada ruang publik / pribadi. Dalam hal ini saya hanya akan menggunakan properti otomatis.
public class Abc
{
public int Foo {get; set;}
}
3.) ViewModel mengikat properti. Untuk kelas yang mendukung INotifyPropertyChanged, saya pikir Anda memerlukan variabel bidang pribadi, dukungan.
public class Abc : INotifyPropertyChanged
{
private int foo;
public int Foo
{
get { return foo; }
set { foo = value; OnPropertyChanged("foo"); }
}
}