Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

IEnumerator<TObject> != IEnumerator<TObject> ?

  Alt 4. Jan 2009, 10:53
Irgendwie mag mich der Delphi 2009 Compiler heute nicht oder ich stehe auf dem Schlauch.

Ich habe folgende Deklaration um einer TObjectList das IEnumerator<T> Interface "unterzujubeln".
Delphi-Quellcode:
type
  TEnumObjectList<T> = class(TInterfacedObject, IEnumerable<T>)
  private
    FList: TObjectList;
  public
    constructor Create(AList: TObjectList);
    function GetEnumerator: IEnumerator<T>;
  end;
Bei der Zuweisung an ein Interface spuckt mir der Compiler aus, dass die Methode "GetEnumerator" sich vom Interface unterscheidet.
Delphi-Quellcode:
var
  Enum: IEnumerable<TObject>;
begin
  Enum := TEnumObjectList<TObject>.Create(nil);
end;
Zitat:
[DCC Fehler] Unit1.pas(85): E2211 Deklaration von 'GetEnumerator' unterscheidet sich von der Deklaration in Interface 'IEnumerable<System.TObject>'
System.pas(452): Verwandtes Member: function GetEnumerator: IEnumerator;
Kann mir bitte jemand erklären was ich da falsch mache? Oder ob ich (mal wieder) einen QC-Report formulieren soll.
  Mit Zitat antworten Zitat