Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#5

AW: Prüfen und Casten auf einen Rutsch

  Alt 19. Jul 2012, 00:04
Kleine Korrektur:

Delphi-Quellcode:
function TObjectHelper.TryCast<TCastType: Class>(out Instance: TCastType): Boolean;
begin
  Result := Self is TCastType;
  if Result then
    Instance:= Self
  else
    Instance:= nil;
end;
Allerdings könnte ein public sichtbarer helper for TObject das ganze übrige Helper Szenario obsolet machen.

Besser wäre vielleicht ein Record:

Delphi-Quellcode:
type
  TCaster = record
    function TryCast<TCastType: Class>(Source: TObject; out Target: TCastType): Boolean;
  end;

function TCaster.TryCast<TCastType>(Source: TObject; out Target: TCastType): Boolean;
begin
  Result := Source is TCastType;
  if Result then
    Target := Source
  else
    Target := nil;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming

Geändert von Uwe Raabe (19. Jul 2012 um 08:01 Uhr)
  Mit Zitat antworten Zitat