我有以下类,我希望能够更改ever的值并将所有递归(在根中声明的类)更新为它的最新值。
public class A
{
List <A> ListA= new List<A>;
int ever;
}
答案 0 :(得分:0)
要在值更改时运行逻辑,您需要使用属性:
public class A
{
List <A> ListA = new List<A>();
private int _ever ;
public int ever
{
get {return _ever;}
set {
foreach(A a in ListA)
{
a.ever = value;
}
}
}
}
如果只有一个&#34; root&#34;实例您也可以创建字段static
- 这样该值与类相关联,而不是特定的实例。
答案 1 :(得分:0)
您可以使用属性设置字段,该属性设置字段以及列表中的所有项目。
请注意这一点,因为如果你有任何循环引用,这将导致StackOverflowException
。
public class A
{
private int _ever;
private List<A> _list = new List<A>();
public int Ever
{
get { return _ever; }
set
{
_ever = value;
foreach (A a in _list)
{
a.Ever = value;
}
}
}
}