c#语言改进了重载解析
示例
下面的代码片段显示了在需要委托时传递方法组(而不是lambda)的示例。现在,重载解析将解决此问题,而不是由于C#6能够检查传递的方法的返回类型而引发模棱两可的重载错误。
using System;
public class Program
{
public static void Main()
{
Overloaded(DoSomething);
}
static void Overloaded(Action action)
{
Console.WriteLine("overload with action called");
}
static void Overloaded(Func<int> function)
{
Console.WriteLine("overload with Func<int> called");
}
static int DoSomething()
{
Console.WriteLine(0);
return 0;
}
}结果:
输出结果
Func<int>的重载称为
观看演示
错误
错误CS0121:以下方法或属性之间的调用不明确:“Program.Overloaded(System.Action)”和“Program.Overloaded(System.Func)”