当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何覆盖嵌套类型的方法?》经验,为你挑选了1个好方法。

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

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



1> Rob Kennedy..:

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

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

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有