E2205 interface 型が必要な場所に,interface 型が指定されていません (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

interface 型が必要な場所に,interface 型が指定されていません。このエラーの主な原因は,interface 型として宣言されていないユーザー定義型が指定されていることです。


program Produce;
  type
    Name = string;

    MyObject = class
    end;

    MyInterface = interface(MyObject)
    end;

    Base = class(TObject, Name)
    end;

begin
end.

{ この例では,Name が interface 型として宣言されていないので,Base 型の宣言はエラーになる。同様に MyInterface も上位インターフェースが正しく宣言されていないのでエラーになる }


program Solve;
  type
    BaseInterface = interface
    end;

    MyInterface = interface(BaseInterface)
    end;

    Base = class(TObject, MyInterface)
    end;

begin
end.

{ このエラーの最良の解決策は,ソースコードの意図を明らかにしてコードを見直すことである。クラスでインターフェースを実装しようとするのであれば,最初に明示的に TObject などの基本クラスから派生していなければならない。拡張する場合,1 つのインターフェースだけを上位クラスとして指定できる。

上の例では,インターフェースはほかのインターフェースから正しく派生しており,オブジェクト定義でも基本クラスを正しく指定しているので,インターフェースが指定可能となる }