我有一个类(简化示例,仅显示相关部分)
public class AsyncScenario : Task<Scenario>
{
public async AsyncScenario Test(Func<Task> action)
{
return await this;
}
}
我无法编译这个代码,因为该方法的返回类型为:
编译器错误 CS1983: “异步方法的返回类型必须是 void、Task 或 Task<T>”
为什么异步方法不允许返回从 Task<T>
派生的类?
DerivedTask<T>
?但在这种情况下,没有理由使用async
。您可以删除await
和async
,它仍然可以正常工作。 - Aron