我最近已经从Objective-C领域转移回C#,并且C#5中的async/await关键字看起来很酷。但我仍然试图理解正确的语法。传递异步委托的方法签名是什么?
我想声明一个将异步委托作为参数的方法,但是我无法正确调用调用者和被调用者的语法。有人可以提供一个代码示例,显示方法声明,调用以及对委托的调用吗?
我在想这个声明会像下面这样。请注意,此功能不是异步的;即其异步性与代表无关。
void DoSomethingWithCallback(async delegate foo(int))
{
...
foo(42);
...
}
呼叫会是这样的:
DoSomethingWithCallback(async (int x) => { this.SomeProperty = await SomeAsync(x); });
当然这一切都不中编译和大多数我见过假设一个具有字段或属性是这样的代表,而不是样品我想使用的匿名代理。
尽我所知,没有办法指定内联代理,就像我在上面的问题中所做的那样。要使用委托作为方法参数,委托类型需要在类作用域之外声明。 – AndrewS 2011-12-15 17:13:34