メンバ '<membername1>' は、ベースクラス '<baseclassname>' でメンバ '<membername2>' に対して暗黙的に宣言されたメンバと競合する '<implicitmembername>' を暗黙的に宣言します。
更新 : 2007 年 11 月
エラー メッセージ
メンバ '<membername1>' は、ベースクラス '<baseclassname>' でメンバ '<membername2>' に対して暗黙的に宣言されたメンバと競合する '<implicitmembername>' を暗黙的に宣言します。そのため、このメンバを 'Shadows' で宣言する必要があります。
派生クラスのメンバが、基本クラスの暗黙のメンバと同じ名前で暗黙のメンバを生成しています。暗黙のメンバに Overloads が指定されていないため、コンパイラはこのメンバが基本クラスの暗黙のメンバを Shadows していると見なします。このメンバに 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_ で始まる要素名の使用は避けてください。
既定では、このメッセージは警告です。警告を表示しない方法や、警告をエラーとして扱う方法の詳細については、「Visual Basic での警告の構成」を参照してください。
Error ID: BC40018
このエラーを解決するには
基本クラスの暗黙のメンバを隠ぺい、つまりシャドウする必要がある場合は、派生クラスのメンバの宣言に Shadows キーワードを指定します。
基本クラスの暗黙のメンバをシャドウする必要がない場合は、上記の表にある名前との衝突を避けるため、派生クラスのメンバの名前を変更します。