Partager via


Le membre « <nom_interface>.<nom_procédure> » qui correspond à cette signature ne peut pas être implémenté, car l’interface « <nom_interface> » contient plusieurs membres avec ce nom et cette signature : <liste_signatures>

Une procédure ou une propriété tente d’implémenter une procédure ou une propriété définie dans une interface implémentée, mais le compilateur détecte plusieurs versions de la procédure ou de la propriété d’interface avec le même nom et la même signature.

Cette erreur peut se produire avec les types génériques construits, comme l’illustrent les déclarations suivantes.

Public Interface baseInterface(Of t)  
    Sub doSomething(ByVal inputValue As String)  
    Sub doSomething(ByVal inputValue As t)  
End Class  
Public Class implementingClass  
    Implements baseInterface(Of String)  
    Sub doSomething(ByVal inputValue As String) _  
        Implements baseInterface(Of String).doSomething  
    End Sub  
End Class  

Étant donné que implementingClass implémente baseInterface qui fournit String à son paramètre de type t, les deux versions de doSomething dans baseInterface ont des signatures identiques pour implementingClass . De ce fait, le compilateur ne peut pas déterminer quelle version implémenter.

ID d’erreur : BC30937

Pour corriger cette erreur

  • Modifiez le ou les arguments de type que vous fournissez à la classe de base pour éviter la présence d’une ou plusieurs signatures de procédures ou propriétés membres identiques.

    -ou-

  • N’implémentez pas cette classe de base. Vous ne pouvez pas l’implémenter avec le jeu d’arguments de type que vous utilisez, car vous devez implémenter chacun de ses membres.

Voir aussi