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.omething()是什么意思?实际上,当我调试它时,我可以看到'a'的值并被分配给目标变量。但是,委托结束后,目标为空。 – user2818430
@ user2818430,请显示更多的代码。你省略了太多。特别是,显示调用'demo.Something'的行,以及您在哪里检查'target'的值。最好你的代码实际上应该是可运行的 - 即一个最小的独立可编译的例子。 –