O “<elementname>” é ambíguo porque há vários tipos de membro com esse nome em “<typename>” <type>

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.

A causa mais provável desse erro é a diferenciação de maiúsculas e minúsculas. Os nomes do Visual Basic não diferenciam maiúsculas e minúsculas, o que significa que você pode utilizar maiúsculas e minúsculas em diferentes locais do código. Por exemplo, se você definir uma variável com o nome XYZ e posteriormente acessá-la como xyz, o compilador considerará os dois nomes equivalentes.

No entanto, outras linguagens, como C# e Visual C++, diferenciam maiúsculas de minúsculas. Nessas linguagens, XYZ e xyz não são considerados o mesmo nome. Portanto, uma classe escrita em tal linguagem poderia definir uma variável nomeada XYZ e uma propriedade chamada xyz. O CLR (Common Language Runtime) preserva a diferenciação de maiúsculas e minúsculas nos assemblies. No entanto, se um aplicativo do Visual Basic acessar um assembly com nomes XYZ e xyz, eles aparecerão como o mesmo nome.

ID do erro: BC31429

Para corrigir este erro

  1. Se você tiver controle sobre o código-fonte do tipo definidor, considere renomear os membros para que eles se diferenciem por outros aspectos além do uso de maiúsculas e minúsculas. Isso pode não ser possível se o tipo de definição já tiver sido publicado e estiver sendo usado por outros aplicativos.

  2. Se você não puder renomear os membros no tipo de definição, remova o elemento de programação citado do código. Você não pode acessar um elemento que parece ter várias definições para o Visual Basic.

Confira também