Einzelnen Beitrag anzeigen

KalEl

Registriert seit: 17. Jun 2010
14 Beiträge
 
Delphi 2 Desktop
 
#1

Problem mit IEnumerable und generics

  Alt 24. Aug 2011, 09:54
Delphi-Version: 5
Hallo, ich versuche eine Klasse zu basteln die IEnumerator als generic implementiert und habe damit unter Delphi 2009 und 2010 ein Problem, nämlich dass IEnumerator<T> sich von IEnumerator ableitet und beide Interfaces eine GetCurrent Methode enthalten, einmal als function GetCurrent : TObject und einmal als GetCurrent : T

Als Beispiel habe ich eine kleine Klasse implementiert die im Prinzip nur einen Vektor darstellt:

Code:
type
  TVectorClass = class(TObject)
    private
      fX,fY,fZ : Single;
    public
      property x : Single read fX;
      property y : Single read fY;
      property z : Single read fZ;

      constructor Create(x,y,z : Single);
  end;

Nun den entsprechenden IEnumerator dazu:

Code:
type
  TVectorEnumerator = class(TInterfacedObject, IEnumerator<TVectorClass>)
    private
      F_ve : TVectorEnumerable;
      iIndex : Integer;

    public
      constructor Create(rea : TVectorEnumerable);

      function GetCurrent() : TVectorClass;
      function MoveNext() : Boolean;
      procedure Reset();
  end;

Beim Versuch das zu compilieren erhält man einen E2003: Undeklarierter Bezeichner GetCurrent. Natürlich kann man auch nicht beide GetCurrent Methoden parallel implementieren über overload, da sie die selben Parameter (nämlich keine) verwenden... gibt es da irgendeine Lösung wie man einen generischen IEnumerator implementieren kann?

Ich habe einen alten thread gefunden in dem es wohl um das selbe Problem ging, aber da wurde scheinbar keine Lösung gefunden: http://www.delphipraxis.net/126890-i...r-tobject.html

Wäre für jeden Tip dankbar!
  Mit Zitat antworten Zitat