Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Wosi,
2. Aug 2017
Um die Auswertung von Analyse.Method.Name nur im Erfolgsfall durchzuführen, müsste man anstelle eines String-Parameters ein TFunc<String> verwenden:
function IfThen(AValue: Boolean; const ATrueFunc: TFunc<String>;
AFalse: string = ''): string;
begin
if AValue then
Result := ATrueFunc()
else
Result := AFalse;
end;
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Wosi,
2. Aug 2017
Ich wette er liegt falsch.
Destroy wird von TObject.Free aufgerufen und ist virtual. Mit reintroduce wird der Aufruf des neu definierten Destruktors verhindert.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Wosi,
2. Aug 2017
Hier gibt's einige Dinge, die man eleganter lösen könnte.
Einerseits können dich immutable objects vor dem unsauberen inneren Zustand des TAnalyse-Objekts schützen. Das würde bedeuten, dass Properties keine Set-Methode besitzen und daher nur lesend zur Verfügung stehen. Die Initial-Werte aller Properties werden dem Konstruktor per Parameter übergeben und können danach nicht mehr von außen...