Condividi tramite


'<elementname>' è ambiguo perché esistono diversi tipi di membri con lo stesso nome in <type> '<typename>'

Un'espressione accede a un elemento di programmazione definito in una classe, una struttura, un modulo o un'interfaccia che contiene più membri con lo stesso nome.

La causa più probabile di questo errore è la distinzione tra maiuscole e minuscole. I nomi in Visual Basic non fanno distinzione tra maiuscole e minuscole, dunque è possibile scriverli usando le maiuscole e le minuscole in modo diverso in posizioni differenti del codice. Ad esempio, se si definisce una variabile con il nome XYZ e in seguito vi si accede come xyz, il compilatore considera i due nomi equivalenti.

Altri linguaggi, tuttavia, ad esempio C# e Visual C++, rilevano la differenza tra maiuscole e minuscole. In questi linguaggi, XYZ e xyz non sono considerati uguali. Di conseguenza, una classe scritta in un linguaggio di questo tipo potrebbe definire una variabile denominata XYZ e una proprietà denominata xyz. Common Language Runtime conserva la distinzione tra maiuscole e minuscole negli assembly. Se però un'applicazione di Visual Basic accede a un assembly con i nomi XYZ e xyz, i nomi appariranno come uguali.

ID errore: BC31429

Per correggere l'errore

  1. Se si ha il controllo sul codice sorgente del tipo di definizione, rinominare i membri in modo che non differiscano solo per la combinazione di maiuscole e minuscole. Questa operazione potrebbe non essere possibile se il tipo di definizione è già stato pubblicato ed è già usato da altre applicazioni.

  2. Se non è possibile rinominare i membri nel tipo di definizione, rimuovere l'elemento di programmazione dal codice. Non è possibile accedere a un elemento a cui in Visual Basic corrispondono più definizioni.

Vedi anche