メンバ '<membername1>' は、ベースクラス '<baseclassname>' のメンバと競合する '<implicitmembername>' を暗黙的に宣言しています。

更新 : 2007 年 11 月

エラー メッセージ

メンバ '<membername1>' は、ベースクラス '<baseclassname>' のメンバと競合する '<implicitmembername>' を暗黙的に宣言しています。メンバ'を '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_ で始まる要素名の使用は避けてください。

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

Error ID: BC40022

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

  • 基本クラス メンバを隠す、つまりシャドウする必要がある場合は、プロパティ宣言内の Overloads キーワードを Shadows キーワードに置き換えます。

  • 基本クラス メンバをシャドウする必要がない場合は、プロパティ名を変更して上記の表に示した名前の競合を回避します。

参照

概念

宣言された要素の名前