使用Iterators,可以使用以下通用委托:
public delegate IEnumerable<TOut> MyDelegate<TIn>(TIn param1);
使用C#5.0 CTP中的新async / await,我希望能够创建类似的委托,如下所示:
public delegate async TOut MyDelegate<TIn>(TIn param1);
我无法找到C#5.0规范或这方面的任何帮助。任何人都知道如何写这个或者如果不能写,为什么?
谢谢!
答案 0 :(得分:5)
async
是一个实现细节,而不是接口规范。 async
代表没有意义。
任何返回&#34;等待&#34; (例如Task
或Task<T>
)可与await
一起使用。
所以&#34;异步委托&#34;将是返回Task
或Task<T>
(或任何其他类似的等待)的任何委托类型。在你的情况下:
public delegate Task<TOut> MyDelegate<TIn, TOut>(TIn param1);