0
У меня есть класс с свойством, которое возвращает функцию.C# Функция возврата свойства - получить значение из lambda
public class Demo
{
public Func<string,int,bool> Something { get; set; }
}
Если я, как этот
Demo demo = new Demo();
string target;
demo.Something = (a,b)=>
{
//in here `a` contains a value.
//and I want to do:
target = a;
return true;
};
//later in the code target is null
//target here is null instead of having the value of `a`
Как присвоить значение а для целевой переменной в лямбда, чтобы использовать его позже в коде?
Вы делаете это правильно. Однако 'Something' не вызывается. Вы просто определяете функцию. Написание 'demo.Something (...)' впоследствии правильно присвоит 'target' – Rob
@Rob: что вы имеете в виду, написав demo.Something() afterwards? Фактически, когда я его отлаживаю, я вижу значение 'a' и присваивается целевой переменной. Однако после завершения делегирования цель равна нулю. – user2818430
@ user2818430, пожалуйста, покажите больше своего кода. Вы слишком много пропустили. В частности, покажите строки, которые вызывают «demo.Something» и где вы проверяете значение «target». Предпочтительно, чтобы ваш код действительно выполнялся, т. Е. Минимальный автономный компилируемый пример. –