Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Class helper wird übersprungen wenn...

  Alt 16. Okt 2014, 20:33
Delphi-Version: 5
Properties im Spiel sind.

Beispiel: Ich schreibe einen Helfer für eine getValue(): Integer -Funktion. Fügt eine Unterklasse oder ein passendes Interface nun eine Property Value: Integer ein, bekommt man über diese Property immer den reinen Getter, ohne die Hilfsfunktion!

Folgende Typen
Delphi-Quellcode:
TSomeClass = class
   public function getValue(): Integer; // Ergibt 42
end;

TSubClass = class(TSomeClass)
   property Value: Integer read getValue;
end;

TSomeClassHelper = class helper for TSomeClass
   public function getValue(): Integer; // Verdoppelt den Wert von getValue()
   public property Value: Integer read getValue;
end;
erzeigen unsinnigerweise folgende Ausgabe:
Code:
   WriteLn( TSomeClass.Create().Value ); // 84
   WriteLn( TSubClass.Create().Value ); // 42

Kann ich etwas dagegen tun oder nur weinen?

Meine Intention war die Methode SetNodeValue(OleVariant) von TXMLNode zu patchen. Und das ruft man üblicherweise über die Property NodeValue von IXMLNode auf.
  Mit Zitat antworten Zitat