我有三个变量,int
即和。我希望它始终是 和 的总和。如果我更改or的值,那么 的值应该会自动更新。如何做到这一点?a1
a2
a3
a1
a2
a3
a2
a3
a1
问问题
1106 次
4 回答
4
@Randolf 是对的,您是否考虑过将它们放入一个类中并自动计算 a1 ,即
public class IntHolder()
{
public int a2 {get; set;}
public int a3 {get; set;}
public int a1
{
get
{
return a2+a3;
}
}
}
于 2012-09-18T15:12:03.520 回答
3
您将需要手动更新它。由于int
是原始类型,它直接保存值而不是引用。因此,实现一个方法,每当 a2 或 a3 发生变化时,它将两者相加并将其值分配给 a1。或者只是将 a1 设置为始终计算值的只读属性。但是,对于第一种情况:
private int m_a2;
public int A2
{
get { return m_a2; }
set
{
m_a2 = value;
CalculateSumAgain();
}
}
于 2012-09-18T15:08:51.497 回答
2
使 a1 成为如下属性:
public int a1
{
get
{
return a2 + a3;
}
}
public int a2;
public int a3;
于 2012-09-18T15:11:53.147 回答
0
而且,如果您希望它在本地运行- a1 的 lambda 几乎可以工作- 您不能以这种方式拥有本地属性,因此必须使用 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
}
于 2012-09-18T16:01:33.703 回答