Hinweis: Dies wurde gepostet, als ich mit C # anfing. Mit dem Wissen von 2014 kann ich wirklich sagen, dass Auto-Eigenschaften zu den besten Dingen gehören, die jemals mit der C # -Sprache passiert sind.
Ich bin es gewohnt, meine Eigenschaften in C # mithilfe eines privaten und eines öffentlichen Felds zu erstellen:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
Mit .NET 3.0 haben wir jetzt automatische Eigenschaften:
public string Title { get; set; }
Ich weiß, dass dies eher eine philosophische / subjektive Frage ist, aber gibt es einen Grund, diese Auto-Eigenschaften zu verwenden, außer fünf Codezeilen für jedes Feld zu speichern? Mein persönlicher Kritikpunkt ist, dass diese Eigenschaften Dinge vor mir verbergen, und ich bin kein großer Fan von schwarzer Magie.
Tatsächlich wird das versteckte private Feld nicht einmal im Debugger angezeigt, was in Ordnung ist, da die Funktionen get / set nichts bewirken. Aber wenn ich tatsächlich eine Getter / Setter-Logik implementieren möchte, muss ich trotzdem das private / öffentliche Paar verwenden.
Ich sehe den Vorteil, dass ich viel Code speichere (eine gegen sechs Zeilen), ohne die Fähigkeit zu verlieren, die Getter / Setter-Logik später zu ändern, aber andererseits kann ich das bereits tun, indem ich einfach ein öffentliches Feld "Public string Title" ohne deklariere die Notwendigkeit des {get; einstellen; } blockieren und somit sogar mehr Code speichern.
Also, was vermisse ich hier? Warum sollte jemand eigentlich Auto-Eigenschaften verwenden wollen?