2012-03-12 84 views
1

簡單問題:請問這個翻譯成VB.Net在Dispatcher.Invoke轉換lambda表達式

Dispatcher.BeginInvoke(() => listening = false); 

聽力是類(布爾)變量。在線轉換器沒有幫助,我們提出沒有編譯:

Dispatcher.BeginInvoke(Function(listening) listening = False) 

任何幫助,將不勝感激。

+0

這要麼無法編譯在C#中,所以請張貼完整的行。 – 2012-03-12 13:38:40

+0

@TimSchmelter:平易近人);溜了,現在修好了 – Terry 2012-03-12 13:41:25

回答

3

在C#拉姆達像:

() => listening = false 

空括號意味着拉姆達沒有參數。而且,由於Dispatcher.BeginInvoke採取動作,沒有返回值,在VB中,這將是一個Sub,而不是一個Function

Sub() listening = False 

所以你必須:

Dispatcher.BeginInvoke(Sub() listening = False) 
+0

工作就像一個魅力! – Terry 2012-03-12 13:57:03

+0

很高興聽到它。 – 2012-03-12 14:28:33