简单方法调用:无法从用法推断出类型参数

时间:2017-01-03 15:09:13

标签: c# compiler-errors

我偶然发现了一个我无法解释的错误。

以下代码在Visual Studio 2015中导致编译器错误:

class Program {
  private static void DoSomethingWithParameter(string s) { }

  private static void RegisterMethod<T>(Action<T> method) { }

  static void Main(string[] args) {
    RegisterMethod(DoSomethingWithParameter);
  }
}

错误:

  

错误CS0411无法从用法推断出方法'Program.RegisterMethod&lt; T&gt;(Action&lt; T&gt;)'的类型参数。尝试显式指定类型参数。

如果我将方法调用更改为

RegisterMethod<string>(DoSomethingWithParameter);

它有效。

我认为编译器应该能够从第一个方法调用中推断出正确的类型,但事实并非如此。有人可以向我解释一下吗?

0 个答案:

没有答案