我有以下代码将枚举交给私有字段:
interface
type
TMyClassEnumerator = class(TEnumerator<TMyClass>)
end;
TMyContainerClass = class(TObject)
private
FItems: TObjectDictionary<string, TMyClass>;
public
function GetEnumerator: TMyClassEnumerator;
end;
implementation
function TMyContainerClass.GetEnumerator: TMyClassEnumerator;
begin
Result := TMyClassEnumerator(FItems.Values.GetEnumerator);
end;
我这样做对吗?我为实现或创建自己的接口而奋斗IENumerable<TMyClass>
,但是,我没有编译它......上面的代码确实适用于例如for..in
,但我觉得我应该通过实现这样的接口使其成为一个适当的可枚举。