Как передать элемент в лямбда

Собственно есть код:

TestClass classTT;
Checker.Check((classTT) =>
{
    classTT = GetTestClass();
    // Некий код
    // ..
    return classTT.Displayed;
});

classTT.InitValue(32);
// ...
classTT.SaveToFile('testLog');

При компиляции ошибка:

Delegate 'Func' doesn't take 1 arguments

Как правильно передать classTT в лямбда?


Ответы (1 шт):

Автор решения: aepot

Его не надо передавать, он туда попадёт автозахватом сам. Все что нужно, это успокоить компилятор, чтобы не выдавал ошибку "не присвоено значение".

TestClass classTT = null;
Checker.Check(() =>
{
    classTT = GetTestClass();
    // Некий код
    // ..
    return classTT.Displayed;
});

classTT.InitValue(32);
// ...
classTT.SaveToFile('testLog');

Но вообще такие штуки надо через возвращаемое значение делать. Старайтесь пробрасывать данные через аргументы и возвращаемые значения, так код будет более гибкий и безопасный.

→ Ссылка