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.