我最近已經從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