Вы можете сделать что-то вроде этого:
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