'<typename>' で定義された拡張メソッド '<methodname>' 内の型パラメータのデータ型は複数になる可能性があるため、これらの引数から推論することはできません
更新 : 2007 年 11 月
エラー メッセージ
'<typename>' で定義された拡張メソッド '<methodname>' 内の型パラメータのデータ型は複数になる可能性があるため、これらの引数から推論することはできません。データ型を明示的に指定すると、このエラーが修正される可能性があります。
ジェネリック拡張メソッドの呼び出しで、型の推論を使用して型パラメータのデータ型を決定しようとしました。コンパイラは、1 つ以上の型パラメータに対して複数のデータ型を検出し、このエラーを生成します。
メモ : |
---|
引数を指定できない場合 (たとえば、クエリ式内のクエリ演算子など)、エラーの 2 つ目の文は表示されません。 |
エラーのコード例を次に示します。
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
Error ID: BC36655 (LINQ クエリ内) および BC36652 (クエリ外)
このエラーを解決するには
エラーがクエリ外で発生している場合、型パラメータのデータ型を明示的に指定してください。
caller.targetExtension(Of Integer)(1, "2") caller.targetExtension(Of String)(1, "2")
参照
概念
Visual Basic におけるジェネリック プロシージャ