H2365 オーバーライド メソッド %s.%s は、上位の %s.%s と大文字/小文字が一致する必要があります(Delphi)
エラーと警告のメッセージ(Delphi) への移動
メソッドをオーバーライドする際には、メソッド名の大文字/小文字を上位メソッドと一致させることをお勧めします。これにより、大文字/小文字が区別されないと思っている Delphi ユーザーが予想していないような障害が下流工程で発生するのを避けることができます。
例
以下の場合には、ヒント H2365 が出力されます。
type
TClass1 = class
procedure VirtualMethod; virtual; abstract;
end;
TClass2 = class(TClass1)
procedure virtualmethod; override;
end;
procedure TClass2.virtualmethod;
begin
end;
Delphi で大文字/小文字が区別される状況を以下にいくつか示します。
- unit 宣言と uses 句では、ユニット名とファイル名が大文字/小文字の違いまで含めて一致していなければなりません。それ以外の状況(たとえば、修飾識別子など)では、ユニット名は大文字/小文字が区別されません。ユニット参照に関する問題を避けるには、以下のように、ユニットのソース ファイルを明示的に参照するようにします。
uses MyUnit in "myunit.pas";
- コンポーネントの登録
- 独自のコンポーネントを作成して登録する場合、register 関数は以下のように宣言する必要があります。
procedure Register; <<-- Leading capital required.
- 設計時パッケージの場合、
Register
手続きの名前は大文字/小文字が区別されます。register
手続き(小文字)を宣言した場合は、たとえヒント H2365 が出力されなくても、期待した結果は得られません。独自のコンポーネントが登録されないからです。詳細については、「RegisterComponents 手続きの使用」を参照してください。
- 外部関数のインポート
- 外部関数をインポートする際には、大文字/小文字の違いまで含めて DLL で使用されているとおりに名前を指定する必要があります。