我在Delphi 2009中有一个自定义的TObjectList后代,我想稍微使用它的枚举器并为MoveNext方法添加一些过滤功能,以使其跳过某些对象.MoveNext是由DoMoveNext调用的,这是一个虚方法,所以这不应该难以覆盖......除了一件事.TObjectList的TEnumerator不是它自己的类; 它在TObjectList声明中声明为嵌套类型.
有没有简单的方法来覆盖我的后代类中的TEnumerator.DoMoveNext,还是我必须重新实现整个TEnumerator?这不是一个很大的课程,但如果可以的话,我宁愿将冗余保持在最低限度......
枚举器是它自己的类.它只有一个嵌套的范围.要为它编写后代,只需像通常那样声明一个类,并在指定新类的祖先时,给出完全限定的类型名称.
type TMasonEnumerator = class(TObjectList.TEnumerator) protected function DoMoveNext: Boolean; override; end;