Teilen über


Compilerfehler C3498

'var': Sie können keine Variable erfassen, die über einen verwalteten oder WinRTtype verfügt.

Bemerkungen

Sie können keine Variable erfassen, die einen verwalteten Typ oder einen Windows-Runtime-Typ in einem „lambda“ aufweist.

So beheben Sie diesen Fehler

  • Übergeben Sie die verwaltete oder Windows-Runtime-Variable an die Parameterliste des Lambda-Ausdrucks.

Example

Im folgenden Beispiel wird C3498 generiert, da eine Variable mit einem verwalteten Typ in der Erfassungsliste eines Lambdaausdrucks angezeigt wird:

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

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

Im folgende Beispiel wird C3498 durch Übergeben der verwaltete Variablen s an die Parameterliste des Lambda-Ausdrucks aufgelöst:

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

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

Siehe auch

Lambda-Ausdrücke