、およびという3 つのint
変数があります。常にとの合計になるようにしたい。またはの値を変更すると、 の値が自動的に更新されます。これを達成する方法は?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のラムダはほとんど機能します-このようにローカルプロパティを持つことはできないため、次のような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 に答える