'<genericproceduresignature>' の型パラメータ '<typeparametername>' に対して型引数を推論できませんでした。

更新 : 2007 年 11 月

エラー メッセージ

'<genericproceduresignature>' の型パラメータ '<typeparametername>' に対して型引数を推論できませんでした。型引数を、パラメータ '<parametername>' に渡される引数から推論することができませんでした。

ジェネリック プロシージャが型引数を渡さずに呼び出されたため、コンパイラではパラメータの 1 つに渡す型を推論できません。

通常、ジェネリック プロシージャを呼び出すには、ジェネリック プロシージャに定義されたすべての型パラメータに 1 つずつ型引数を渡す必要があります。型引数を渡さないと、コンパイラは型パラメータに渡す型を推論しようとします。呼び出しのコンテキストから型パラメータについて矛盾するデータ型情報が提供される場合、型の推論は失敗します。

このエラーは次のようなコードで発生します。

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

この例では、コンパイラは arg2 に 42 という値が渡されることから t の型は Integer であると推論します。ただし、この推論が成り立つには、arg1 が Integer() 型 (Integer の配列) である必要がありますが、arg1 に渡される 6 という値はこの型に一致しません。

Error ID: BC32051

このエラーを解決するには

  • 型引数をジェネリック プロシージャに渡して、コンパイラが型を推論しなくて済むようにします。

  • 型引数の型に一致する型で通常の引数を渡します。

参照

概念

Visual Basic におけるジェネリック型

Visual Basic におけるジェネリック プロシージャ

参照

型リスト