'var': 您無法擷取具有 Managed 或 WinRTtype 的變數
備註
您無法擷取在 lambda 中有 managed 類型或 Windows 執行階段類型的變數。
更正這個錯誤
- 將 managed 或 Windows 執行階段變數傳遞至 lambda 運算式的參數清單。
Example
下列範例會產生 C3498,因為具有 managed 類型的變數會出現在 lambda 運算式的擷取清單中:
// C3498a.cpp
// compile with: /clr
using namespace System;
int main()
{
String ^ s = "Hello";
[&s](String ^ r)
{ return String::Concat(s, r); } (", World!"); // C3498
}
下列範例會藉由將傳遞 managed 變數 s 至 lambda 運算式的擷取清單中,以解析 C3498:
// C3498b.cpp
// compile with: /clr
using namespace System;
int main()
{
String ^ s = "Hello";
[](String ^ s, String ^ r)
{ return String::Concat(s, r); } (s, ", World!");
}