无法根据这些实参推断“<typename>”中定义的扩展方法“<methodname>”中类型形参的数据类型,因为可能有多种类型

更新:2007 年 11 月

错误消息

无法从这些实参推断扩展方法“<methodname>”(在“<typename>”中定义)中类型形参的数据类型,因为可能为多个类型。此错误可以通过显式指定数据类型来更正。

已经尝试在对泛型扩展方法的调用中使用类型推断功能来确定类型形参的类型。编译器为一个或多个类型形参找到多个可能的数据类型,并报告此错误。

说明:

当无法指定实参时(例如,对于查询表达式中的查询运算符),显示的错误消息不包括第二个句子。

下面的代码演示此错误。

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

**错误 ID:**BC36655(在 LINQ 查询内部)和 BC36652(在查询外部)

更正此错误

  • 如果此错误出现在查询外部,请尝试显式指定类型形参的数据类型:

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

请参见

概念

扩展方法 (Visual Basic)

Visual Basic 中的泛型过程

参考

Option Strict 语句