如何覆盖嵌套类型的方法?

时间:2008-12-14 19:40:25

标签: delphi delphi-2009 nested-class

我在Delphi 2009中有一个自定义的TObjectList后代,我想稍微使用它的枚举器并为MoveNext方法添加一些过滤功能,以使其跳过某些对象。 MoveNext是由DoMoveNext调用的,这是一个虚方法,所以这不应该难以覆盖......除了一件事。 TObjectList的TEnumerator不是它自己的类;它在TObjectList声明中声明为嵌套类型。

有没有简单的方法来覆盖我的后代类中的TEnumerator.DoMoveNext,还是我必须重新实现整个TEnumerator?这不是一个很大的课程,但如果可以的话,我宁愿将冗余保持在最低限度......

2 个答案:

答案 0 :(得分:8)

枚举器自己的类。它只有一个嵌套的范围。要为它编写后代,只需像往常一样声明一个类,并在指定新类的祖先时,给出完全限定的类型名称。

type
  TMasonEnumerator = class(TObjectList.TEnumerator)
  protected
    function DoMoveNext: Boolean; override;
  end;

答案 1 :(得分:0)

Excelent topics关于调查员。