对“<genericproceduresignature>”的类型参数“<typeparametername>”所做的类型参数推导失败

更新:2007 年 11 月

错误消息

对“<genericproceduresignature>”的类型参数“<typeparametername>”所做的类型参数推理失败。无法从传递给参数“<parametername>”的参数推理类型参数。

泛型过程是在未提供任何类型变量的情况下调用的,因此编译器无法推理出要传递给其中某个参数的类型。

通常,在调用某个泛型过程时,您将为该泛型过程定义的每个类型参数提供一个类型变量。如果未提供任何类型变量,编译器将尝试推理要传递给类型参数的类型。如果调用的上下文为类型参数提供了有冲突的数据类型信息,则类型推理将失败。

以下代码可能会产生此错误。

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 与该类型不匹配。

**错误 ID:**BC32051

更正此错误

  • 为泛型过程提供类型变量,以使编译器不必推理它们。

  • 提供其类型与类型变量的类型相匹配的普通参数。

请参见

概念

Visual Basic 中的泛型类型

Visual Basic 中的泛型过程

参考

类型列表