0

我有两种异步方法如下:

protected async Task<bool> DoSomething(byte[] data) {
    await System.Console.Out.WriteLineAsync("Do things.");
    Data refinedData = Data.fromByteArray(data);
    return DoSomething(refinedData); // Compiler error!
}

protected async Task<bool> DoSomething(Data data) {
    /* Do way more interesting things with data now that it's our type! */
    return true;
}

我想做的不是必须使用await我的第一个 return 语句,而是只需传递到DoSomething. 是否有一种特殊的方法可以在第二次覆盖的返回时调用以推迟到它生成的Task实例,或者我可以/应该使用的特定语言机制?

4

1 回答 1

3

您应该从第一个方法签名中删除 async 关键字,或者在返回之前使用 await 关键字。

return await DoSomething(refinedData);

于 2014-03-13T21:53:25.720 回答