Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.944 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Anonyme Methoden, Wann,warum, Vorteile

  Alt 29. Sep 2014, 23:09
Man sollte das meistens sowieso nur für kurze Methoden verwenden
und wenn diese Methode auch nur an einer Stelle verwendet wird.

IMHO ist der Code so eventuell sogar besser lesbar, da der Code so direkt lesbar ist, als wenn man erst zu der Methode springen muß.
Delphi-Quellcode:
...
if Tasks.Count > 0 then begin
  Tasks[0].RunTask(OverViewF.cmdProgressBackground);
  Text := Log.GetLastRow;
end else
  Text := 'Nothing to do';
SpringeInHauptthread;
begin // man kann gern noch ein logisches begin/end einfügen ... muß man aber nicht
  if Text <> OverviewF.lblTaskBackground.Caption then
    Log.AddLog('Setting label to from "' + OverviewF.lblTaskBackground.Caption + '" to "' + Text + '"');
  OverviewF.lblTaskBackground.Caption := Text;
end;
SpringeZurückInDenEigentlichenThread;
...
Und grade bei der Synchronisierung ist hier der Vorzeil, daß man lokale Variablen, der übergeordneten Methode, direkt und sogar treadsave an die anonyme Methode übergeben kann, während man bei einer "richtigen" Methode keine Parameter übergeben kann und somit das praktisch mindestens thread-global übergeben muß, inkl. externer Variablen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (29. Sep 2014 um 23:17 Uhr) Grund: *schnarsch*
  Mit Zitat antworten Zitat