operator加上一个感叹号,让他变得更清楚(这里有yield、await和return)。就算看起来再奇怪,也不可能是别的。yield、return和await都是函数,是函数就得有个namespace,那我们可以拿seq和async做namespace。seq的yield和return修改了某个IEnumerator<T>的状态,而async的await和return修改了某个Task<T>的状态。而seq和async的返回值分别是IEnumerable<T>和Task<T>。IEnumerator<T>。所以,这个IEnumerator<T>对象肯定是一个continuation的参数了。operator的参数,还有controller(在这里是seq_Enumeartor<T>)一起传递过去。