Welchen Unterschied macht es für den Benutzer einer Klasse, ob eine Property so deklariert ist
property SomeProp: integer read FSomeProp write FSomeProp;
oder so
property SomeProp: integer read GetSomeProp write SetSomeProp;
?
Bis auf die Geschwindigkeit, keinen
Doch. Der Leser der Klasse muss ständig zur Implementierung scrollen, nur um zu sehen, das sie nichts macht, außer das Feld zu liefern/zu beschreiben. Vollkommen überflüssig also. Eine Implementierung sollte auch etwas implementieren und man sollte i.a. die kürzeste Variante nehmen, die für die Implementierung einer Aufgabe zur Verfügung steht (vorbehaltlich der Lesbarkeit). Wenn die Intention des Setters/Getters eine zusätzliche Funktionalität ist, dann kann man so einen quasi leeren Getter/Setter durchaus anlegen. Es soll ja noch etwas hinzukommen (Kommentare durchaus erwünscht). Aber nur, um Code zu produzieren... Also ich weiß nicht.
...das gehört für mich einfach mit zum objektorientierten Design
Das *produzieren* von überflüssigem Code????
Zitat:
Nach der Argumentation könnte man doch theoretisch auch fragen
Kann man. Aber wenn man seinen Kopf einschaltet, fragt man das nicht
Zitat:
Und was C# angeht: Soweit ich mich erinnere kann ich da auch nicht direkt auf eine Variable verweisen, sondern habe lediglich die Möglichkeit, Getter und Setter in "verkürzter" Form zu implementieren - muss aber trotzdem einen Wert rausgeben (Result := FBla) und einen Wert verarbeiten (FBla := AValue), was dann wiederum einer Kapselung in eine Methode entspricht.
Nope.
Code:
public int Var {get;set;}
Nennt sich Autoproperty und ist einfach die Konsequenz aus dem, was Du ablehnst.