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

成员“<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_开头的元素名称。

默认情况下,此消息是一个警告。 有关隐藏警告或将警告视为错误的详细信息,请参阅 Configuring Warnings in Visual Basic

错误 ID: BC40018

更正此错误

  • 如果你想隐藏或遮蔽隐式基类成员,请将 Shadows 关键字包含在派生的类成员的声明中。

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

另请参阅