给定声明如下所示的类型
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表达式)。
但在这种情况下,为什么编译器不会从第二个参数
答案 0 :(得分:2)
C#不支持构造函数的类型推断,尽管通常可以通过使用工厂类来解决这个问题。
答案 1 :(得分:1)
那么C#是怎么回事!它没有推断构造函数。在实例化泛型类型时,您需要指定将用于泛型类型的类型。