Поделиться через


Член <имяЧлена1> неявно объявляет <имяНеявногочлена>, который конфликтует с членом, неявно объявленным для члена <имяЧлена2> в базовом классе <имяБазовогоКласса>

Обновлен: Ноябрь 2007

Сообщение об ошибке

Член "<имяЧлена1>" неявно объявляет "<имяНеявногоЧлена>", который конфликтует с членом, неявно объявленным для члена "<имяЧлена2>" в базовом классе "<имяБазовогоКласса>". Поэтому член должен объявляться с модификатором Shadows.
Member '<membername1>' implicitly declares '<implicitmembername>', which conflicts with a member implicitly declared for member '<membername2>' in the base class '<baseclassname>'. So the member should be declared '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.

Идентификатор ошибки: BC40018

Исправление данной ошибки

  • Если требуется скрыть или затенить неявный базовый член класса, включите в объявление члена производного класса ключевое слово Shadows.

  • Если не требуется скрывать неявный базовый член класса, измените имя члена производного класса, чтобы избежать конфликтов имен, описанных в предыдущей таблице.

См. также

Основные понятия

Имена объявленных элементов