为什么在下一个代码示例的(Func<IInterface>)
和(Func<Task<IInterface>>)
之间出现模糊的调用错误?如何在不替换方法组调用的情况下避免此错误?
public class Program
{
public static void Main(string[] args)
{
Method(GetObject);
}
public static IInterface GetObject() => null;
public static void Method(Func<IInterface> func) =>
Console.WriteLine("First");
public static void Method(Func<Task<IInterface>> funcAsync) =>
Console.WriteLine("Second");
}
public interface IInterface { }
答案 0 :(得分:1)
这将解决问题,因为您的方法需要一个返回IInterface
的函数public class Program
{
public static void Main(string[] args)
{
Method(() => GetObject());
}
public static IInterface GetObject() => null;
public static void Method(Func<IInterface> func) =>
Console.WriteLine("First");
public static void Method(Func<Task<IInterface>> funcAsync) =>
Console.WriteLine("Second");
}
public interface IInterface { }