' <elementname> ' é ambíguo porque existem vários tipos de membros com esse nome em <type> ' <typename> ''<elementname>' is ambiguous because multiple kinds of members with this name exist in <type> '<typename>'

Uma expressão acessa um elemento de programação definido em uma classe, estrutura, módulo ou interface que contém mais de um membro com o mesmo nome.An expression accesses a programming element defined in a class, structure, module, or interface that contains more than one member with the same name.

A causa mais provável desse erro é a diferenciação de maiúsculas e minúsculas.The most likely cause of this error is case sensitivity. Os nomes de Visual Basic não diferenciam maiúsculas de minúsculas, o que significa que você pode capitalizar deles de forma diferente em locais diferentes em seu código.Visual Basic names are case-insensitive, which means you can capitalize them differently at different places in your code. Por exemplo, se você definir uma variável com o nome XYZ e, posteriormente, acessá-la como xyz , o compilador considerará que os dois nomes são equivalentes.For example, if you define a variable with the name XYZ and later access it as xyz, the compiler considers the two names to be equivalent.

No entanto, outras linguagens, como C# e Visual C++, diferenciam maiúsculas de minúsculas.However, other languages, such as C# and Visual C++, are case-sensitive. Nesse idioma, XYZ e xyz não são considerados o mesmo nome.In such a language, XYZ and xyz are not considered to be the same name. Portanto, uma classe escrita em tal linguagem poderia definir uma variável chamada XYZ e uma propriedade chamada xyz .Therefore, a class written in such a language could define a variable named XYZ and a property named xyz. O Common Language Runtime (CLR) preserva a diferenciação de maiúsculas e minúsculas nos assemblies.The common language runtime (CLR) preserves case sensitivity in assemblies. No entanto, se um aplicativo Visual Basic acessar um assembly com nomes XYZ e xyz , eles aparecerão como o mesmo nome.However, if a Visual Basic application accesses an assembly with names XYZ and xyz, they appear as the same name.

ID do erro: BC31429Error ID: BC31429

Para corrigir este erroTo correct this error

  1. Se você tiver controle sobre o código-fonte do tipo de definição, considere renomear os membros para que eles difiram mais do que apenas maiúsculas e minúsculas.If you have control over the source code of the defining type, consider renaming the members so that they differ by more than only casing. Isso pode não ser possível se o tipo de definição já tiver sido publicado e estiver sendo usado por outros aplicativos.This might not be possible if the defining type has already been published and is being used by other applications.

  2. Se você não puder renomear os membros no tipo de definição, remova o elemento de programação citado do seu código.If you cannot rename the members in the defining type, remove the cited programming element from your code. Você não pode acessar um elemento que parece Visual Basic ter várias definições.You cannot access an element that appears to Visual Basic to have multiple definitions.

Consulte tambémSee also