gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 18:15:42 26 4
gpt4 key购买 nike

我在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com