Прочитать на английском

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


"<elementname>" является неоднозначным, так как в типе< ">typename>" существует <несколько типов элементов с таким именем.

Выражение обращается к программному элементу, определенному в классе, структуре, модуле или интерфейсе, содержащем несколько членов с тем же именем.

Наиболее вероятной причиной этой ошибки является учет регистра. В именах Visual Basic регистр не учитывается, что означает, что в разных местах в коде эти имена можно указывать в разном регистре. Например, если определить переменную с именем XYZ и позже обратиться к ней как к xyz, компилятор сочтет эти два имени равнозначными.

Однако другие языки, такие как C# и Visual C++, чувствительны к регистру. В таких языках XYZ и xyz не считаются одинаковыми. Следовательно, в классе, написанном на таком языке, должна быть задана переменная с именем XYZ и свойство с именем xyz. Среда CLR сохраняет учет регистра в сборках. Однако если приложение Visual Basic обращается к сборке с именами XYZ и xyz, они отображаются как одно и то же имя.

Код ошибки: BC31429

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

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

  2. Если вы не можете переименовать элементы в определяющем типе, удалите рассматриваемый программный элемент из кода. Вы не можете получить доступ к элементу, который присутствует в Visual Basic, чтобы иметь несколько определений.

См. также