Oft wird uns gesagt, wir sollten die Kapselung schützen, indem wir Getter- und Setter-Methoden (Eigenschaften in C#) für Klassenfelder erstellen, anstatt die Felder der Außenwelt preiszugeben.
Aber es gibt viele Fälle, in denen ein Feld nur dazu da ist, einen Wert zu speichern, und keine Berechnungen zum Abrufen oder Setzen erfordert. In diesen Fällen würden wir alle diese Nummer verwenden:
public class Book
{
private string _title;
public string Title
{
get => _title;
set => _title = value;
}
}
Nun, ich muss gestehen, dass ich es nicht ertragen konnte, das alles zu schreiben (es ging nicht darum, es zu schreiben, sondern darum, es anzusehen), also bin ich abtrünnig geworden und habe öffentliche Felder verwendet.
Dann kommt C# 3.0 und ich sehe, dass sie automatische Eigenschaften hinzugefügt haben:
public class Book
{
public string Title { get; set; }
}
Das ist aufgeräumter, und ich bin dankbar dafür, aber was ist wirklich so anders als ein öffentliches Feld zu machen?
public class Book
{
public string Title;
}