이 같은 수행 할 수 있습니다
class ValueChangedEventArgs : EventArgs
{
public readonly int LastValue;
public readonly int NewValue;
public ValueChangedEventArgs(int LastValue, int NewValue)
{
this.LastValue = LastValue;
this.NewValue = NewValue;
}
}
class Values
{
public Values(int InitialValue)
{
_value = InitialValue;
}
public event EventHandler<ValueChangedEventArgs> ValueChanged;
protected virtual void OnValueChanged(ValueChangedEventArgs e)
{
if(ValueChanged != null)
ValueChanged(this, e);
}
private int _value;
public int Value
{
get { return _value; }
set
{
int oldValue = _value;
_value = value;
OnValueChanged(new ValueChangedEventArgs(oldValue, _value));
}
}
}
그래서 당신이 여기처럼 클래스를 사용할 수 있습니다 (콘솔 테스트) :
void Main()
{
Values test = new Values(10);
test.ValueChanged += _ValueChanged;
test.Value = 100;
test.Value = 1000;
test.Value = 2000;
}
void _ValueChanged(object sender, ValueChangedEventArgs e)
{
Console.WriteLine(e.LastValue.ToString());
Console.WriteLine(e.NewValue.ToString());
}
이 인쇄됩니다
Last Value: 10
New Value: 100
Last Value: 100
New Value: 1000
Last Value: 1000
New Value: 2000
을 가능한 중복 : http://stackoverflow.com/questions/7677854/notifypropertychanged-event-where-event-args-c ontain-the-old-value –