Udostępnij za pośrednictwem


Nie można zaimplementować interfejsu "<interfacename1>", ponieważ jego implementacja może powodować konflikt z implementacją innego zaimplementowanego interfejsu "<interfacename2>" dla niektórych argumentów typu

Deklaracja klasy zawiera instrukcję określającą Implements co najmniej dwa interfejsy, ale co najmniej jeden z interfejsów jest ogólny, a dwie implementacje mogą powodować konflikt dla niektórych wartości argumentów typu.

Następujące instrukcje mogą generować ten błąd.

Public Interface iFace1
    Sub testSub(ByVal arg As String)
End Interface
Public Interface iFace2(Of t)
    Sub testSub(ByVal arg As t)
End Interface
Public Class testClass
    Implements iFace1, iFace2(Of String)
End Class

Ponieważ iFace2 program jest skonstruowany przy użyciu metody String, testClass musi implementować dwie wersje testSub z identycznymi podpisami. Takie działanie spowodowałoby niejednoznaczność co do wersji, do której ma być uzyskiwany dostęp.

Identyfikator błędu: BC32072

Aby poprawić ten błąd

  • Zmień argument typu dostarczony do interfejsu ogólnego, aby nie wystąpił konflikt.

    — lub —

  • Usuń z instrukcji Implements jeden z interfejsów, co powoduje konflikt implementacji.

Zobacz też