Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用迭代器,以下通用委托是可能的:
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 规范或任何帮助。有谁知道这是怎么写的,或者如果不能写,为什么?
谢谢!
async是实现细节,而不是接口规范。async委托没有意义。
async
任何返回“等待”的方法(例如Task或Task<T>)都可以与await.
Task
Task<T>
await
因此,“异步委托”将是任何返回Task或Task<T>(或任何其他类型的可等待)的委托类型。在你的情况下:
public delegate Task<TOut> MyDelegate<TIn, TOut>(TIn param1);