Bir adım daha öteye götürür ve 3 duruma getirirdim. Her birinde farklılıklar olsa da, C # programlamada çoğu zaman kullandığım kurallar budur.
2 ve 3 durumunda, her zaman Mülkiyet Erişicisine gidin (alan değişkeni değil). Ve 1 durumunda, bu seçimi yapmak zorunda kalmaktan bile kurtuldunuz.
1.) Taşınmaz mal (kurucuya devredilmiş veya inşaat zamanında yaratılmış). Bu durumda, salt okunur özelliğe sahip bir alan değişkeni kullanıyorum. Bunu özel bir pasif için tercih ediyorum, çünkü özel pasif, değişmezliği garanti etmiyor.
public class Abc
{
private readonly int foo;
public Abc(int fooToUse){
foo = fooToUse;
}
public int Foo { get{ return foo; } }
}
2.) POCO değişkeni. Herhangi bir genel / özel kapsamda ayarlayabilen / ayarlayabilen basit bir değişken. Bu durumda sadece otomatik bir özellik kullanırdım.
public class Abc
{
public int Foo {get; set;}
}
3.) ViewModel bağlama özellikleri. INotifyPropertyChanged'i destekleyen sınıflar için özel bir destek alanı değişkenine ihtiyacınız olduğunu düşünüyorum.
public class Abc : INotifyPropertyChanged
{
private int foo;
public int Foo
{
get { return foo; }
set { foo = value; OnPropertyChanged("foo"); }
}
}