0
以下代碼會產生編譯器錯誤「預期表達式」(Sub帶下劃線)。無法按預期使用Lamba表達式
Dim lambda As Action(Of Integer) = Sub(x) Console.WriteLine(x)
爲什麼這不起作用?
注:相應的C#代碼的工作:
Action<int> lambda = x => Console.WriteLine(x);
以下代碼會產生編譯器錯誤「預期表達式」(Sub帶下劃線)。無法按預期使用Lamba表達式
Dim lambda As Action(Of Integer) = Sub(x) Console.WriteLine(x)
爲什麼這不起作用?
注:相應的C#代碼的工作:
Action<int> lambda = x => Console.WriteLine(x);
我猜你使用Visual Studio 2008的動作lambda表達式在VB.NET(Sub
關鍵字)have been added in VB 10,它附帶的Visual Studio 2010年同期順便說一句,對於多線lambda來說也是如此。
請注意,這不是一個框架問題,而是一個編譯器問題:只要您使用VS 2010編譯器,即使在.NET 3.5項目中也可以使用動作lambdas。
C#在VB之前有動作lambdas,這就是爲什麼C#示例在VS 2008中仍然可以工作。
這解釋了一切。謝謝! – 2011-12-23 20:17:16
有沒有辦法在VB.net 3.5中做類似的事情呢? – 2014-06-02 14:09:51
@SimonDugré:當然,它在VB.net 3.5中工作得很好!你只需要使用VS 2010或更高版本。 – Heinzi 2014-06-02 14:37:14