故障排除:为什么这里没有类型推断失败?

3

给定以下声明的类型

public class EqualityProbe<T>
{
  public EqualityProbe( Func<T> functionToGetActualValue, T expectedValue, string probeDescription) {..}

客户端代码:

// cannot infer bool here
new EqualityProbe(CanConnectToMachine, true, "Probe machine is online")
// compiles fine
new EqualityProbe<bool>(CanConnectToMachine, true, "Probe machine is online")

我理解的是类型推断对于方法组(例如CanConnectToMachine)或匿名方法(lambda表达式)不起作用。
但在这种情况下,为什么编译器不能从第二个参数中推断出类型参数呢?

可能是为什么C#构造函数不能推断类型?的重复问题。 - AakashM
2个回答

2

1

嗯,这就是 C# 的特点!它不会推断构造函数。在实例化通用类型时,您需要指定将用于通用类型的类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接