'<typename>' で定義された拡張メソッド '<methodname>' 内の型パラメータのデータ型を、これらの引数から推論することはできません

更新 : 2007 年 11 月

エラー メッセージ

'<typename>' で定義された拡張メソッド '<methodname>' 内の型パラメータのデータ型を、これらの引数から推論することはできません。データ型を明示的に指定すると、このエラーが修正される可能性があります。

ジェネリック拡張メソッドの呼び出しを評価するときに、型の推論を使用して型パラメータのデータ型を決定しようとしました。ただし、コンパイラは、このメソッド内の型パラメータに対してデータ型を検出することができないため、このエラーを生成します。

Bb531322.alert_note(ja-jp,VS.90).gifメモ :

引数を指定できない場合 (たとえば、クエリ式内のクエリ演算子など)、エラーの 2 つ目の文は表示されません。

エラーのコード例を次に示します。

Module Module1

    Sub Main()

        Dim classInstance As ClassExample

        '' Not valid.
        'classInstance.GenericExtensionMethod("Hello", "World")

    End Sub

    <System.Runtime.CompilerServices.Extension()> _
    Sub GenericExtensionMethod(Of T)(ByVal classEx As ClassExample, _
                                     ByVal x As String, ByVal y As _
                                     InterfaceExample(Of T))
    End Sub

End Module

Interface InterfaceExample(Of T)
End Interface

Class ClassExample
End Class

Error ID: BC36649 および BC36646

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

  • 型の推論に依存することなく、型パラメータのデータ型を指定できる場合があります。

参照

概念

厳密でないデリゲート変換

拡張メソッド (Visual Basic)

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

その他の技術情報

Visual Basic における型変換