E2058 class,interface,および object 型は型宣言部でのみ宣言できます (Delphi)

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

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

クラス型またはオブジェクト型は常に type 宣言部で明示的に型宣言しなければなりません。レコード型と異なり,それらの型には名前が必要です。

明示的な型宣言が必要な主な理由は,型名がないためにその型のメソッドを宣言できなくなるからです。


program Produce;

var
  MyClass : class
    Field: Integer;
  end;

begin
end.

{ このコードは変数宣言の中でクラス型を宣言しようとしており,違法である }


program Solve;

type
  TMyClass = class
    Field: Integer;
  end;

var
  MyClass : TMyClass;

begin
end.

{ そのクラス型の型宣言を導入すれば解決する。あるいは,クラス型をレコード型へ変更してもよい }