我有两个异步方法如下:
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;
}
我想要做的是不必在我的第一个return语句中使用await
,而是直接转到DoSomething
的第二个覆盖。是否有一个特殊的方法,我可以调用第二个覆盖的返回来推迟它生成的Task
实例,或者我可以/应该使用的特定语言机制?
答案 0 :(得分:3)
您应该从第一个方法签名中删除async关键字,或者在返回之前应该使用await关键字。
return await DoSomething(refinedData);