3

私は、各要素を反復処理し、 type の現在の項目である paramenter を使用してtMyList<B>匿名プロシージャを呼び出すメソッド Each() を持つ一般的な List のようなクラスを持っています。ライフタイム管理を容易にするために、クラスをインターフェイスとして実装したいと考えています。tMyList<A>.enumProc<B>

問題は、型が不明であるiMyList<A>ため、インターフェイスでEach メソッドを宣言できないことです。tMyList<A>.enumProc私の知る限り、インターフェイスはネストされた型をサポートしていませんか?

コードは次のとおりです。

  tMyList<B> = class;

  iMyList<A> = interface
    procedure each(enumProcedure: iMyList<A>.enumProc); // ERROR - Undeclared identifier: 'enumProc'
  end;

  tMyList<B> = class(tInterfacedObject, iMyList<B>)
    type
      enumProc = reference to procedure(item: iMyList<B>);
    public
      procedure each(enumProcedure: enumProc);
  end;

* この特定のケースでは、列挙子の実装はオプションではありません

4

1 に答える 1