为什么C#5.0等待关键字被列为运算符而不是修饰符?

Jon*_*way 10 c# async-await c#-5.0

MSDN库await关键字列为运算符.这似乎很奇怪,我-我还以为这是一个修改器,像async关键字.

为什么这是一个运营商?

Guv*_*nte 5

async是声明的修饰符.类似于public.

await是一个消耗异步操作符并对其执行操作的操作.类似于return.

await不修改后面放置的内容,而是指定如何处理该操作.相比之下async,实际上并没有修改任何东西,它只是标志着一种特定方法的风格async(最终是await从合成的角度对方法结构进行所有更改).


Han*_*ant 5

修饰符适用于声明.private,static,out,ref,params,override关键字就是这样的例子.和异步.

运算符应用于表达式并转换表达式结果.你在await右边写的东西叫做"await表达式".因此它是一个统一的运营商.