假設我想要一個方法將對象的BeginInvoke方法作爲參數傳遞。我會怎麼做?該調用如下所示:將BeginInvoke作爲參數傳遞
MyRandomMethod(SomeControl.BeginInvoke);
MyRandomMethod的方法定義是什麼?
問題的一部分是BeginInvoke有重載,所以編譯器會對我嘗試傳遞的參數感到困惑。也許我需要找到一種方法來說明我指的是哪個版本的BeginInvoke? (雖然我會想象這將取決於參數類型)
假設我想要一個方法將對象的BeginInvoke方法作爲參數傳遞。我會怎麼做?該調用如下所示:將BeginInvoke作爲參數傳遞
MyRandomMethod(SomeControl.BeginInvoke);
MyRandomMethod的方法定義是什麼?
問題的一部分是BeginInvoke有重載,所以編譯器會對我嘗試傳遞的參數感到困惑。也許我需要找到一種方法來說明我指的是哪個版本的BeginInvoke? (雖然我會想象這將取決於參數類型)
MyRandomMethod
將必須具有代表與參數SomeControl.BeginInvoke
重載其中一個重載的參數。例如:
public void MyRandomMethod(Func<Delegate, IAsyncResult> foo)
或
public void MyRandomMethod(Func<Delegate, object[], IAsyncResult> foo)
(但請不要超載MyRandomMethod
本身與這兩個簽名,否則你只是在尋求混淆)
喬恩有權利 - 投票刪除我的 – n8wrl 2010-12-01 21:37:50
這是一個代碼氣味,但我看不到代碼。拉姆達可以解決您的問題。 – 2010-12-01 22:48:20