属性“<propertyname>”隐式声明的“<implicitmembername>”与为基类“<baseclassname>”中的成员“<membername>”隐式声明的成员冲突

更新:2007 年 11 月

错误消息

成员“<membername1>”隐式声明的“<implicitmembername>”与基类“<baseclassname>”中为成员“<membername2>”隐式声明的成员冲突。因此不应将该成员声明为“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:**BC40024

更正此错误

  • 如果打算隐藏隐式基类成员,则在属性声明中将 Overloads 关键字替换为 Shadows 关键字。

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

请参见

概念

已声明元素的名称