好吧,我一直在试图解决这个问题,我读过一些文章,但没有一篇提供我正在寻找的答案。
我的问题是:为什么Task
必须返回一个任务async Task
不是吗?
例如:
public override Task TokenEndpoint(OAuthTokenEndpointContext context)
{
// Code removed for brevity.
return Task.FromResult<object>(null);
}
正如你所看到的,该方法不是async
,所以它必须返回一个任务。
现在,看一下这个:
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
// Code removed for brevity...
if(user == null)
{
context.SetError("invalid_grant", "username_or_password_incorrect");
return;
}
if(!user.EmailConfirmed)
{
context.SetError("invalid_grant", "email_not_confirmed");
return;
}
// Code removed for brevity, no returns down here...
}
它使用async
关键字,但它不返回任务。这是为什么?
我知道这可能是有史以来最愚蠢的问题。
但我想知道为什么会这样。
async
向编译器表明该方法包含await
。当这种情况时,你的方法隐含地返回一个任务,所以你不需要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)