Dom*_*que 3 c# asynchronous type-conversion
我只有以下一段代码,但未编译:
public Task<int> Handle
{
var result = <do_something_returning_an_int>();
...
return result;
}
Run Code Online (Sandbox Code Playgroud)
这会给出编译器错误“无法将类型‘int’隐式转换为‘System.Threading.Thread.Task’”。
当我将其更改为:
async Task<int> Handle
{
var result = <do_something_returning_an_int>();
...
return result;
}
Run Code Online (Sandbox Code Playgroud)
...没有编译器错误。
我知道这async意味着任务不需要等待答案到达,但这与类型转换有什么关系呢?
小智 5
如果您不在异步方法中等待任何内容,则可以省略async关键字并直接返回 aTask而不是结果。
public Task<int> Handle
{
var result = <do_something_returning_an_int>();
...
return Task.FromResult(result);
}
Run Code Online (Sandbox Code Playgroud)
据我所知,只有当其他代码严格期望Task您的方法中的 a 时,这样做才有意义。
这当然与访问修饰符无关,您可以async与public或任何其他访问修饰符结合使用。
我还建议您查看文档