2010-04-15 61 views
6

如何在C++/CLI中使用lambda表達式?C++/CLI中的Lambdas

+1

你的意思是什麼CLI? – wRAR 2010-04-15 05:08:47

+0

在visual studio中使用的C++(在我可以使用.net庫)我的端口系統linq,現在我想使用一些函數,使用c#的lamda表達式,如WindowsFormsSynchronizationContext.Post – Xaver 2010-04-15 05:15:25

回答

3

在C#中,lambda實際上只是創建代表的語法糖。 C++/CLI supports delegates,所以你仍然可以在C++中使用C++/CLI中的所有相同的東西,但你不能使用漂亮的語法。

+0

我同意你,但我已經有程序寫在C++/CLI – Xaver 2010-04-15 08:23:31

0

根據What's New in Visual C++ 2010,只能在VS2010中使用lambda表達式。

+0

如果我有vs-2008?我如何使用WindowsFormsSynchronizationContext.Post? – Xaver 2010-04-15 05:25:49

+1

我不認爲他在問C++ 0x lambdas,他問的是從C++/CLI使用.NET lambdas – 2010-04-15 05:47:46

+1

是的,我問的是從C++/CLI使用.NET lambdas。 – Xaver 2010-04-15 06:41:43

1

我發現從Microsoft employee on the vc blog一個問題有關的C++ 0x拉姆達這個響應和託管代碼的互操作性:

只能傳遞一個變量與 託管類型作爲參數傳遞給一個 拉姆達 - 您無法捕獲具有託管類型的變量 。 我們沒有計劃「合併」lambda和代表。