Soll ich öffentliche Eigenschaften und private Felder oder öffentliche Felder für Daten verwenden?

In einem Großteil des Codes, den ich gesehen habe (auf SO, thecodeproject.com und in der Regel in meinem eigenen Code), wurden öffentliche Eigenschaften für jedes einzelne private Feld in einer Klasse erstellt, auch wenn es sich um die meisten handelt Grundtyp vonget; set; mögen:

private int myInt;
public int MyInt 
{
     get { return myInt; }
     set { myInt = value }
}

Meine Frage ist: Wie unterscheidet sich das von:

public int MyInt;

und wenn wir Eigenschaften anstelle von öffentlichen Feldern verwenden sollten, warum sollten wir sie in diesem speziellen Fall verwenden? (Ich spreche nicht von komplexeren Beispielen, bei denen die Get- und Setter tatsächlich etwas Besonderes tun oder nur ein Get oder Set (nur Lesen / Schreiben) vorhanden ist, anstatt nur einen Wert eines privaten Feldes zurückzugeben / festzulegen.) Es scheint keine zusätzliche Kapselung hinzuzufügen, nur ein nettes Symbol in IntelliSense zu geben und in einem speziellen Abschnitt in Klassendiagrammen platziert zu werden!

Antworten auf die Frage(13)

Ihre Antwort auf die Frage