Číst v angličtině

Sdílet prostřednictvím


Nelze implementovat< název_rozhraní1>.<membername>", protože jeho implementace by mohla být v konfliktu s implementací "<interfacename2>".<>název_člena pro některé argumenty typu

Třída implementuje více než jedno obecné rozhraní, z nichž jeden dědí z jiného a dvě implementace člena rozhraní mohou kolidovat pro určité hodnoty argumentů typu.

Tato chyba může vygenerovat následující příkazy.

Public Interface iFace1(Of t)  
    Sub testSub()  
End Interface  
Public Interface iFace2(Of u)  
    Inherits iFace1(Of u)  
End Interface  
Public Class testClass(Of y, z)  
    Implements iFace1(Of y), iFace2(Of z)  
    Public Sub testSuby() Implements iFace1(Of y).testSub  
    End Sub  
    Public Sub testSubz() Implements iFace1(Of z).testSub  
    End Sub  
End Class  

Vzhledem k tomu iFace2 , že dědí z iFace1 použití vlastního parametru typu (u), testClass implementuje dvě verze iFace1.testSub s identickými podpisy, pokud byl stejný argument typu předán y do a z. Výsledkem by byla nejednoznačnost, ke které verzi se má přistupovat.

ID chyby: BC32125

Oprava této chyby

  • Změňte strukturu dědičnosti rozhraní tak, aby iFace1 nebylo možné implementovat se dvěma různými argumenty typu.

    nebo

  • Odeberte z Implements příkazu jedno z rozhraní, které vede ke konfliktu implementace.

Viz také