Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"var": nie można przechwycić zmiennej, która ma zarządzany lub WinRTtype
Uwagi
Nie można przechwycić zmiennej z typem zarządzanym lub typem środowisko wykonawcze systemu Windows w lambda.
Aby poprawić ten błąd
- Przekaż zmienną zarządzaną lub środowisko wykonawcze systemu Windows do listy parametrów wyrażenia lambda.
Example
Poniższy przykład generuje C3498, ponieważ zmienna o typie zarządzanym jest wyświetlana na liście przechwytywania wyrażenia lambda:
// C3498a.cpp
// compile with: /clr
using namespace System;
int main()
{
String ^ s = "Hello";
[&s](String ^ r)
{ return String::Concat(s, r); } (", World!"); // C3498
}
Poniższy przykład rozwiązuje problem C3498, przekazując zmienną zarządzaną s do listy parametrów wyrażenia 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!");
}