Für den <Typparametername>-Typparameter von '<Signatur der generischen Prozedur>' war kein Rückschluss auf ein Typargument möglich

Aktualisiert: November 2007

Fehlermeldung

Für den <Typparametername>-Typparameter von "<Signatur der generischen Prozedur>" war kein Rückschluss auf ein Typargument möglich. Das Typargument konnte nicht per Rückschluss von dem an den <Parametername>-Parameter übergebenen Argument abgeleitet werden
Type argument inference failed for type parameter '<typeparametername>' of '<genericproceduresignature>'. Type argument could not be inferred from the argument passed to parameter '<parametername>'.

Eine generische Prozedur wird ohne Angabe von Typargumenten aufgerufen, und der Compiler kann den an einen der Parameter zu übergebenden Typ nicht ableiten.

Wenn Sie eine generische Prozedur aufrufen, geben Sie i. d. R. für jeden Typparameter, der durch die generische Prozedur definiert wird, ein Typargument an. Wenn Sie keine Typargumente angeben, versucht der Compiler, die an die Typparameter zu übergebenden Typen abzuleiten. Wenn durch den Kontext des Aufrufs Datentypinformationen für einen Typparameter bereitgestellt werden, die einen Konflikt verursachen, schlägt die Typableitung fehl.

Dieser Fehler kann durch folgenden Code generiert werden.

Public Sub doSomething(Of t)(ByVal arg1 As t(), ByVal arg2 As t)
End Sub
Call doSomething(6, 42)

Im vorhergehenden Beispiel leitet der Compiler Typ Integer für t anhand des an arg2 übergebenen Werts 42 ab. Diese Ableitung erfordert jedoch, dass arg1 vom Typ Integer() ist, also ein Array von Integer-Werten, und der an arg1 übergebene Wert 6 stimmt nicht mit diesem Typ überein.

Fehler-ID: BC32051

So beheben Sie diesen Fehler

  • Geben Sie Typargumente für die generische Prozedur an, damit der Compiler sie nicht ableiten muss.

  • Geben Sie normale Argumente mit Typen an, die mit den Typen der Typargumente übereinstimmen.

Siehe auch

Konzepte

Generische Typen in Visual Basic

Generische Prozeduren in Visual Basic

Referenz

Typenliste