Einzelnen Beitrag anzeigen

jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: Problem beim schreiben einer Listenklasse

  Alt 26. Feb 2008, 08:59
Wieso Typsicherheit erst zur Laufzeit und nicht schon zur Compilierzeit?

Delphi-Quellcode:
type
  TFile = class(TObject)
    // ...
  end;

  TFileList = class(TObject)
  private
    FItems: TObjectList;

    function GetItem(const Index: Integer): TFile;

  public
    constructor Create(const OwnsObjects: Boolean = True);
    destructor Destroy; override;

    function Add(const F: TFile): Integer;

    property Items[const Index: Integer]: TFile read GetItem; default;
  end;

constructor TFileList.Create(const OwnsObjects: Boolean = True);
begin
  inherited Create;

  FItems := TObjectList.Create(OwnsObjects);
end;

destructor TFileList.Destroy;
begin
  FItems.Free;

  inherited Destroy;
end;

function TFileList.Add(const F: TFile): Integer;
begin
  FItems.Add(F);
end;

function TFileList.GetItem(const Index: Integer): TFile;
begin
  Result := TFile(FItems[Index]);
end;
Dadurch dass TFileList.Add() nur Objekte vom Typ TFile akzeptiert, kann man sich den geprüften Cast in TFileList.GetItem() sparen.

jkr
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat