class A
{
private int _cnt = 0;
public int cnt
{
get { return _cnt; }
set { _cnt = Value; }
} private A _parent= 0;
public A parent
{
get { return _parent; }
set { _parent= Value; }
}
}当A中cnt改变,让A父级的cnt也做改变,该怎么实现?
{
private int _cnt = 0;
public int cnt
{
get { return _cnt; }
set { _cnt = Value; }
} private A _parent= 0;
public A parent
{
get { return _parent; }
set { _parent= Value; }
}
}当A中cnt改变,让A父级的cnt也做改变,该怎么实现?
{
private int _cnt = 0;
public int cnt
{
get
{
return _cnt;
}
set
{
_cnt = Value;
if(_parent != null) _parent._cnt = value;
}
} private A _parent;
public A parent
{
get { return _parent; }
set { _parent= Value; }
}
}
{
A x = new A();
x.parent = new A();
x.cnt = 5;
Console.WriteLine(x.parent.cnt);
}class A
{
private int _cnt = 0;
public int cnt
{
get
{
return _cnt;
}
set
{
_cnt = value;
if (_parent != null) _parent._cnt = value;
}
} private A _parent = null;
public A parent
{
get { return _parent; }
set { _parent = value; }
}
}
{
A x = new A();
A y = new A();
A z = new A(); x.parent = y;
y.parent = z; x.cnt = 5;
Console.WriteLine(y.cnt + " " + z.cnt);
Console.ReadKey();
}
/*
输出 5 0
*/按1楼所说,如果是单一的父级可以改变,但是如果父级有N层,一直到顶层都要改变就实现不了,
using System;namespace ConsoleApplication1
{
class Program
{
static void Main()
{
A x = new A();
A y = new A();
A z = new A();
x.parent = y;
y.parent = z;
x.cnt = 5;
Console.WriteLine(y.cnt + " " + z.cnt);
Console.ReadKey();
} }
class A
{
private int _cnt;
public int cnt
{
get
{
return _cnt;
}
set
{
_cnt = value;
if (_parent != null) parent.cnt = value;//应该父级属性的cnt属性赋值,本来是_parent._cnt = value;这只是给当前对象中的parent这个属性中的cnt赋值而不是给父级中的cnt赋值
}
} private A _parent;
public A parent
{
get { return _parent; }
set { _parent = value; }
}
}
}
{
A x = new A();
x.parent = new A();
x.cnt = 5;
Console.WriteLine(x.parent.cnt);
}class A
{
private int _cnt = 0;
public int cnt
{
get
{
return _cnt;
}
set
{
_cnt = value;
if (_parent != null) _parent.Cnt = value;//使用属性即可
}
} private A _parent = null;
public A parent
{
get { return _parent; }
set { _parent = value; }
}
}