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

标签 delphi delphi-2009 nested-class

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

是否有任何简单的方法可以在我的后代类中覆盖 TEnumerator.DoMoveNext,或者我是否必须重新实现整个 TEnumerator?这不是一个很大的类(class),但如果可以的话,我宁愿将冗余保持在最低限度......

最佳答案

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

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

关于delphi - 如何覆盖嵌套类型的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/366896/

相关文章:

delphi - 如何修复损坏的 Delphi 2009 安装

php - Delphi CryptoBlackBox 和 PHP

delphi - 使用许多组件和库提高大型项目的 Delphi 2009 IDE 速度

delphi - 如何使用TD词典?

Python 嵌套类混淆

java - 类似 "qualified this"但用于访问嵌套类而不是封闭类的成员

delphi - 来自通用参数类的类引用

delphi - 如何将我的自定义属性设置为第一个从流系统读取的属性?

mysql - Delphi 2009 + Zeos + MySQL DBGrid 将字符串显示为 (BYTES)

c++ - 为什么这个程序不能在VC++2008Express中编译?