次の 2 つの非同期メソッドがあります。
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 ステートメントで使用する必要はなく、 の 2 番目のオーバーライドに渡すだけですDoSomething
。2番目のオーバーライドの戻り時に呼び出して、生成されたTask
インスタンスを延期できる特別なメソッド、または使用できる/使用する必要がある特定の言語メカニズムはありますか?