对“<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
更正此错误
为泛型过程提供类型变量,以使编译器不必推理它们。
提供其类型与类型变量的类型相匹配的普通参数。