共用方式為


編譯器錯誤 C3498

'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!");
}

另請參閱

Lambda 運算式