我有三个int
个变量,a1
,a2
和a3
。我希望a1
使其始终为a2
和a3
的总和。如果我更改a2
或a3
的值,则a1
的值应自动更新。怎么做到这一点?
答案 0 :(得分:3)
您需要手动更新。由于int
是primitive type,因此它直接保存值而不是对它的引用。因此,实现一种方法,无论何时a2或a3发生变化,它都将两者相加并将其值赋给a1。或者只设置a1一个始终计算该值的只读属性。但是,对于第一种情况:
private int m_a2;
public int A2
{
get { return m_a2; }
set
{
m_a2 = value;
CalculateSumAgain();
}
}
答案 1 :(得分:2)
使a1属性如:
public int a1
{
get
{
return a2 + a3;
}
}
public int a2;
public int a3;
答案 2 :(得分:0)
如果你希望它是本地的函数 - lambda for a1几乎可以工作 - 你不能以这种方式拥有本地属性所以必须使用类似a1()
的a1的方法调用语法:
void foo()
{
int a2 = 3;
int a3 = 4;
Func<int> a1 = ()=> a2 + a3;
Console.WriteLine(a1()); // 3+4 = 7
a2 = 5;
Console.WriteLine(a1()); // 5+4 = 9
}