<type1> '<membername>' は、ベース <type2> '<classname>' で宣言されたオーバーロード可能なメンバに 'Shadow' を実行します。

更新 : 2007 年 11 月

エラー メッセージ

<type1> '<membername>' は基本クラスの <type2> '<classname>' で宣言されているオーバーロード可能なメンバをシャドウします。基本メソッドをオーバーロードする場合は、このメソッドを 'Overloads' として宣言する必要があります。

基本クラスで定義されているプロシージャやプロパティと同じ名前の Function プロシージャや Sub プロシージャ、または Property が派生クラスに定義されています。プロシージャやプロパティはオーバーロード可能なメンバであるため、派生クラスは、基本クラスのメンバをオーバーロードすることもシャドウすることもできます。ただし、派生クラスの宣言コードには、OverloadsShadows も指定されていません。いずれのキーワードも指定されていない場合、コンパイラは Shadows が指定されていると見なします。

Overloads か Shadows のいずれかを指定して、プログラミングを行うことをお勧めします。これによって、コードが読みやすくなり、簡単に理解できるようになります。

既定では、このメッセージは警告です。警告を非表示にする方法や、警告をエラーとして扱う方法の詳細については、「Visual Basic での警告の構成」を参照してください。

Error ID: BC40003

このエラーを解決するには

  • 基本クラスのメソッドやプロパティをオーバーロードする場合は、宣言に Overloads キーワードを指定します。

  • 基本クラスのメソッドやプロパティをシャドウする場合は、Overloads の代わりに Shadows キーワードを指定します。

  • 基本クラスのメンバをオーバーロードもシャドウもしない場合は、派生クラスのメンバの名前を変更します。

参照

概念

プロシージャのオーバーロード

Visual Basic におけるシャドウ

参照

Overloads

Shadows

Function ステートメント (Visual Basic)

Sub ステートメント (Visual Basic)

Property ステートメント