Czy należy używać właściwości publicznych i pól prywatnych lub pól publicznych do danych?
W większości kodu, który widziałem (na SO, thecodeproject.com i zazwyczaj robię to w moim własnym kodzie), widziałem, że właściwości publiczne są tworzone dla każdego pojedynczego pola prywatnego, które zawiera klasa, nawet jeśli są one najbardziej podstawowy typget; set;
lubić:
private int myInt;
public int MyInt
{
get { return myInt; }
set { myInt = value }
}
Moje pytanie brzmi: jak to się różni od:
public int MyInt;
a jeśli powinniśmy używać właściwości zamiast pól publicznych, dlaczego mielibyśmy ich używać w tym konkretnym przypadku? (Nie mówię o bardziej złożonych przykładach, w których gettery i settery faktycznie robią coś specjalnego lub jest tylko jeden get lub set (tylko do odczytu / zapisu), a nie tylko zwracanie / ustawianie wartości pola prywatnego). Wydaje się, że nie dodaje żadnej dodatkowej enkapsulacji, a jedynie daje ładną ikonę w IntelliSense i umieszcza się w specjalnej sekcji na diagramach klas!