Często mówi się nam, że powinniśmy chronić enkapsulację, tworząc metody getter i setter (właściwości w języku C #) dla pól klas, zamiast wystawiać pola na świat zewnętrzny.
Ale wiele razy pole jest tam tylko po to, by przechowywać wartość i nie wymaga obliczeń, aby uzyskać lub ustawić. Dla tych wszystkich zrobilibyśmy tę liczbę:
public class Book
{
private string _title;
public string Title
{
get{ return _title; }
set{ _title = value; }
}
}
Cóż, mam spowiedź, nie mogłem znieść pisania tego wszystkiego (tak naprawdę nie musiałem tego pisać, musiałem na to popatrzeć), więc zbuntowałem się i korzystałem z publicznych pól.
Potem pojawia się C # 3.0 i widzę, że dodali właściwości automatyczne:
public class Book
{
public string Title {get; set;}
}
co jest bardziej uporządkowane i jestem za to wdzięczny, ale tak naprawdę, co takiego różni się od zwykłego tworzenia pola publicznego?
public class Book
{
public string Title;
}
prop
Fragment kodu pozwala szybko tworzyć właściwości. Po prostu wpisz prop
i tab.