Sdílet prostřednictvím


Chyba kompilátoru C3498

'var': Nemůžete zachytit proměnnou, která má spravovaný nebo WinRTtype.

Poznámky

Nemůžete zachytit proměnnou, která má spravovaný typ nebo prostředí Windows Runtime typ v lambda.

Oprava této chyby

  • Předejte spravovanou nebo prostředí Windows Runtime proměnnou do seznamu parametrů výrazu lambda.

Example

Následující příklad generuje C3498, protože proměnná, která má spravovaný typ, se zobrazí v seznamu zachycení výrazu lambda:

// C3498a.cpp
// compile with: /clr
using namespace System;

int main()
{
   String ^ s = "Hello";
   [&s](String ^ r)
      { return String::Concat(s, r); } (", World!"); // C3498
}

Následující příklad vyřeší C3498 předáním spravované proměnné s do seznamu parametrů výrazu lambda:

// C3498b.cpp
// compile with: /clr
using namespace System;

int main()
{
   String ^ s = "Hello";
   [](String ^ s, String ^ r)
      { return String::Concat(s, r); } (s, ", World!");
}

Viz také

Výrazy lambda