我有兩個異步方法如下:如何通過另一個返回異步任務?
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
第二個覆蓋。有沒有一種特殊的方法,我可以調用返回的第二個覆蓋,以推遲生成的實例,或者我可以/應該使用的特定語言機制?
我得到一個編譯錯誤說,第一種方法必須返回'bool'不'任務'。 –
從第一個方法簽名中刪除async關鍵字,你應該沒問題。 –
這是唯一的解決方案,還是有辦法解決這個問題,而不會失去在這些覆蓋類型中使用'await'的能力? –