Freigeben über


Die Datentypen der Typparameter in der in 'Typname' definierten Erweiterungsmethode '<Methodenname>' können nicht von diesen Argumenten abgeleitet werden, da sie nicht in denselben Typ konvertiert werden

Aktualisiert: November 2007

Fehlermeldung

Die Datentypen der Typparameter in der in 'Typname' definierten Erweiterungsmethode '<Methodenname>' können nicht von diesen Argumenten abgeleitet werden, da sie nicht in denselben Typ konvertiert werden. Sie können diesen Fehler möglicherweise beheben, indem Sie die Datentypen explizit angeben.
Data type(s) of the type parameter(s) in extension method '<methodname>' defined in 'typename' cannot be inferred from these arguments because they do not convert to the same type. Specifying the data type(s) explicitly might correct this error.

Es wurde versucht, bei der Auswertung eines Aufrufs an eine generische Erweiterungsmethode mithilfe von Typrückschluss die Datentypen der Typparameter zu bestimmen. Der Compiler konnte keinen Datentyp finden, der den Einschränkungen aller Argumente entsprach. Aus diesem Grund wurde dieser Fehler angezeigt.

Hinweis:

Wenn Argumente nicht angegeben werden können (z. B. von Abfrageoperatoren in Abfrageausdrücken), wird der zweite Satz der Fehlermeldung nicht angezeigt.

Der folgende Code veranschaulicht den Fehler.

Option Strict Off
Module Module3
    Sub Main()

        Dim c1 As New Class1

        '' Not valid. Integer and Date do not convert to the same type.
        'c1.targetMethod(19, #3/4/2007#)

    End Sub

    <System.Runtime.CompilerServices.Extension()> _
    Sub targetMethod(Of T)(ByVal p0 As Class1, ByVal p1 As T, ByVal p2 As T)
    End Sub

    Class Class1
    End Class

End Module

Fehler-ID: BC36661 und BC36658

So beheben Sie diesen Fehler

  • Möglicherweise können Sie mindestens ein Argument explizit in einen kompatiblen Typ konvertieren, wie in folgendem Code dargestellt:

    c1.targetMethod(19, #3/4/2007#.ToOADate)
    
  • Möglicherweise können Sie für die Typparameter, in die die Argumente konvertiert werden, einen Datentyp angeben, wie in folgendem Code dargestellt:

    c1.targetMethod(Of String)(19, #3/4/2007#)
    

Siehe auch

Konzepte

Erweiterungsmethoden (Visual Basic)

Gelockerte Delegatenkonvertierung

Generische Prozeduren in Visual Basic

Implizite und explizite Konvertierungen

Referenz

Funktionen für die Typkonvertierung

Weitere Ressourcen

Typkonvertierung in Visual Basic