c# - Task.Factory.StartNew() 重载

标签 c# compiler-errors task

我有非常简单的代码:

static void Main(string[] args)
{
    var task = Task.Factory.StartNew(GetInt);

    var task2 = Task.Factory.StartNew(
        () =>
        {
            return GetInt();
        });
}

static int GetInt()
{
    return 64;
}

为什么第一个任务会出现编译器错误? 方法签名(无参数,返回类型为 int )是相等的,不是吗?

我知道一个解决方案(很简单:var task = Task.Factory.StartNew<int>(GetInt);)但我想知道上面的代码有什么问题。

最佳答案

你会得到一个不明确的调用错误,因为方法签名是一样的。 返回值不是签名的一部分。

由于您没有提供明确的返回类型,编译器不知道该取哪个。

Method Signature in C#

关于c# - Task.Factory.StartNew() 重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10034330/

相关文章:

c# - 通过泛型方法实例化接口(interface)基类

c# - 具有多个连接的 Linq 查询未给出正确的结果

c# - 使用VS14构建Monodevelop时出错

c# - 实现即发即忘异步方法调用的正确方法

c# - 如何有效地异步登录?

c# - .NET Singleton 长时间运行的秒表实例

compiler-errors - 无法获取简单的Ada Iterator示例进行编译

java - 编译错误序列: Static compilation error coming after resolving access modifier error?

c - 任务的 UML 表示

C# Task.Wait() 聚合异常