我有年龄类,当年龄值更改时,它会导致操作。我有一个Person类,它的成员变量是Age对象。
class Age
{
private readonly EventHandler _valueChanged;
private int _value;
public int Value
{
get { return _value; }
private set
{
_value = value;
RaiseValueChangedEvent();
}
}
public Age(EventHandler handler)
{
_valueChanged = handler;
}
protected void RaiseValueChangedEvent()
{
var handler = _valueChanged;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
}
class Person
{
private readonly Age _age;
public Person()
{
_age = new Age(OnAgeChanged);
}
protected void OnAgeChanged(object sender, EventArgs e)
{
// Do what is necessary.
}
}
在我的第二个场景中,Age类有一个事件,Person类监听它的事件触发。
class Age
{
public event EventHandler ValueChanged;
private int _value;
public int Value
{
get { return _value; }
private set
{
_value = value;
RaiseValueChangedEvent();
}
}
protected void RaiseValueChangedEvent()
{
var handler = ValueChanged;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
}
class Person
{
private readonly Age _age = new Age();
public Person()
{
_age.ValueChanged += OnAgeChanged;
}
protected void OnAgeChanged(object sender, EventArgs e)
{
// Do what is necessary.
}
}