我正在试验新的 async 和 await 关键字。我生成了以下异步函数:
private async static Task<string> GetStringAsync(string pageAddress)
{
HttpClient client = new HttpClient();
return client.GetStringAsync(pageAddress);
}
我知道我正在返回 aTask<String>
并且可以等待其他方法的结果。这种方法效果很好。我的问题是当我将上述函数的第二行替换为以下内容时会发生什么(实际上是在幕后)(注意await关键字的引入):
return await client.GetStringAsync(pageAddress);
该函数的行为方式完全相同!记住函数返回Task<string>
not string
。这里的await
关键字是退化的吗?编译器是否只是从我的代码中删除它?