故障排除:为什么类型推断在这里不会失败?
本文关键字:在这里 失败 排除 为什么 类型 故障 | 更新日期: 2023-09-27 17:50:33
给定如下所示声明的类型
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#不支持构造函数上的类型推断,尽管这通常可以通过使用工厂类来克服。
在这里看到答案:为什么c#构造函数不能推断类型?
c#就是这样!它不为构造函数进行推断。在实例化泛型类型时,您需要指定将用于泛型类型的type。