メンバー '<メンバー名 1>' が、基底クラス '<基底クラス名>' のメンバー と競合する '<暗黙的なメンバー名>' を暗黙的に宣言しているため、このメンバーを 'Overloads' として宣言できません
派生クラスのプロパティが、基底クラスのメンバーと同じ名前を持つ暗黙的なメンバーを生成し、 Overloads キーワードを指定しています。
オーバーロードは、すべて同じクラス内にある、複数のバージョンのプロパティまたはプロシージャを定義するために使用されます。 基底クラスのメンバーが既に Overloadsを指定しているのでない限り、追加バージョンの基底クラスのメンバーは定義できません。 競合している既定クラスのメンバーは Overloadsを指定しないので、コンパイラはこのプロパティ Shadows を暗黙的な基底クラスのメンバーとみなします。
Visual Basic コンパイラは、宣言されている特定のプログラミング要素に対応して、暗黙的なメンバーを作成します。 次の表には、これらの暗黙なメンバー、つまり 統合メンバーをまとめています。
| 宣言された要素 | 暗黙的に作成されるメンバー |
|---|---|
| 列挙 | value__ のメンバー |
| イベント | add_<eventname> プロシージャremove_<eventname> プロシージャ<eventname>Event のフィールド<eventname>EventHandler デリゲート |
| プロパティ | get_<propertyname> プロシージャset_<propertyname> プロシージャ |
My.Form メンバー、 My.WebService メンバー、または MyGroupCollectionAttribute 属性でマークされたクラスのメンバー |
m_<variablename> Static 変数<variablename> プロパティget_<variablename> プロシージャset_<variablename> プロシージャ |
WithEvents 変数 |
_<variablename> 変数<variablename> プロパティget_<variablename> プロシージャset_<variablename> プロシージャ |
名前競合のリスクがあるため、これらの暗黙的なメンバーのいずれかと同じ形式を使用して、宣言されたプログラミング要素に名前を付けることは避ける必要があります。 たとえば、 get_ または set_で始まる要素名を避ける必要があります。
既定では、このメッセージは警告です。 警告を非表示にする方法や、警告をエラーとして扱う方法の詳細については、「 Configuring Warnings in Visual Basic」をご覧ください。
エラー ID: BC40022
このエラーを解決するには
基底クラスのメンバーを非表示、つまりシャドウする場合は、プロパティの宣言内で、 Overloads キーワードを Shadows キーワードに置き換えます。
基底クラスのメンバーをシャドウしない場合は、上の表で説明されている名前との競合を避けるために、プロパティの名前を変更します。
関連項目
.NET