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

更新:2007 年 11 月

错误消息

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

**错误 ID:**BC40022

更正此错误

  • 如果打算隐藏(或遮盖)基类成员,请在属性的声明中将 Overloads 关键字替换为 Shadows 关键字。

  • 如果不打算隐藏基类成员,请更改属性的名称,以避免出现与上表中所述的名称冲突。

请参见

概念

已声明元素的名称