<分区>
我有与此非常相似的代码(我稍微简化了代码以展示我试图弄清楚的行为的本质)。
public async System.Threading.Tasks.Task<bool> IsNumberOdd(int numToTest)
{
if (numToTest % 2 == 0)
{
return false;
}
else
{
return true;
}
}
如果我离开 async
关键字,我收到关于无法转换 bool
的投诉到 Task<bool>
.我假设这里涉及一些语法糖。查看 IL(我对 IL 不是很熟悉)似乎是 async 关键字导致任务运行,然后返回值是任务的结果。我的理解正确吗?
顺便说一句,如果这是一个骗局,或者如果有一些博客帖子讨论了这个,请随时指出我并关闭它。我不是想掩盖我的代表;我试图了解这段代码发生了什么。
编辑:
对于所有问“为什么这个方法是异步的?”的人——因为我试图构建一个小而简单的代码示例来演示这个问题。我还应该添加一个调用代码示例,但我试图让代码尽可能小和简单。