Die Datentypen der Typparameter in der in '<Typname>' definierten Erweiterungsmethode '<Methodenname>' können nicht von diesen Argumenten abgeleitet werden, da mehrere Typen möglich sind

Aktualisiert: November 2007

Fehlermeldung

Die Datentypen der Typparameter in der in '<Typname>' definierten Erweiterungsmethode '<Methodenname>' können nicht von diesen Argumenten abgeleitet werden, da mehrere Typen möglich sind. 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 more than one type is possible. Specifying the data type(s) explicitly might correct this error.

Es wurde versucht, in einem Aufruf an eine generische Erweiterungsmethode mithilfe von Typrückschluss die Typen der Typparameter zu bestimmen. Der Compiler findet mehrere mögliche Datentypen für mindestens einen der Typparameter und meldet diesen Fehler.

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
Imports System.Runtime.CompilerServices
Module Module1
    Sub Main()

        Dim caller As New Class1
        '' Not valid.
        'caller.targetExtension(1, "2")

    End Sub

    <Extension()> _
    Sub targetExtension(Of T)(ByVal p0 As Class1, ByVal p1 As T, ByVal p2 As T)
    End Sub

    Class Class1
    End Class

End Module

Fehler-ID: BC36655 (in LINQ-Abfragen) und BC36652 (außerhalb von Abfragen)

So beheben Sie diesen Fehler

  • Wenn der Fehler außerhalb einer Abfrage angezeigt wird, versuchen Sie, den Datentyp der Typparameter explizit festzulegen:

    caller.targetExtension(Of Integer)(1, "2")
    caller.targetExtension(Of String)(1, "2")
    

Siehe auch

Konzepte

Erweiterungsmethoden (Visual Basic)

Generische Prozeduren in Visual Basic

Referenz

Option Strict-Anweisung