关于Func 的问题
|
class Program
{
static void Main()
{
int i = 0;
whatever x = new whatever(i);
Console.WriteLine(x);
i = 1;
Console.WriteLine(x);
Console.ReadKey();
}
class whatever
{
public whatever(object variable)
{
this.variable = () => variable.ToString();
}
private Func<string> variable;
public string data;
public override string ToString()
{
data = variable();
return data;
}
}
输出:
0
0
我想做的就是获取更新的i \的值。
没有找到相关结果
已邀请:
5 个回复
社攻取墟槽
输出: 0 1个 或如其他指示所示:
输出: 0 1个
公藕
那有意义吗?参见,lambda必须位于声明“ i”的位置,以便“ i”是lambda的外部变量,因此lambda会看到对其的更改。
目浆搽
上获得更新的值。 如果您有一个对象,该对象持有一个整数值的字段,然后将该对象传递给
,则对该字段的更改将反映在类上。
粳饶瓢部
薄响
是值类型,表示每次使用时都会复制其值,而不是引用。最好的方法是在int周围创建引用类型:
您将需要始终使用
,而将
本身传递过来将保留参考。