成员“<membername1>”隐式声明的“<implicitmembername>”与基类“<baseclassname>”中为成员“<membername2>”隐式声明的成员冲突

更新:2007 年 11 月

错误消息

成员“<membername1>”隐式声明的“<implicitmembername>”与基类“<baseclassname>”中为成员“<membername2>”隐式声明的成员冲突。因此,应将成员声明为“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 中配置警告

**错误 ID:**BC40018

更正此错误

  • 如果打算隐藏或遮盖隐式基类成员,请在派生类成员的声明中包括 Shadows 关键字。

  • 如果不打算隐藏隐式基类成员,请更改派生类成员的名称,以避免与上表中列出的名称冲突。

请参见

概念

已声明元素的名称