Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#19

AW: Generic ObjectList und Suchen - Wie am besten ?

  Alt 6. Aug 2014, 14:23
Delphi-Quellcode:
function TMyObjectList<T>.Search(const predicate: TPredicate<T>): T;
begin
  for Result in Self do
    if predicate(Result) then
      Exit;
end;
TPredicate<T> ist in SysUtils definitiert.
In der Funktion fehlt noch eine Zeile:
Delphi-Quellcode:
function TMyObjectList<T>.Search(const predicate: TPredicate<T>): T;
begin
  for Result in Self do
    if predicate(Result) then
      Exit;
  Result := nil // <<< Das muß rein sonst ist jede Suche erfolgreich mit dem letzten Element!
end;
Hasse recht, sofern kein constraint auf T liegt, muss es allerdings Result := Default(T); heißen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat