网上查不着,非是没人会,而是懒的写,那我就整一个,或抛砖引玉:
public class ClassVarEvent<T>
{
private T myValue;
public T MyValue
{
get { return myValue; }
set
{
if (compare(value, myValue) == false)
WhenMyValueChange();
myValue = value;
}
}
private bool compare(T x, T y)
{
return EqualityComparer<T>.Default.Equals(x, y);
}
public delegate void MyValueChanged(object sender, EventArgs e);
public event MyValueChanged OnMyValueChanged;
public ClassVarEvent()
{
myValue = default(T);
OnMyValueChanged += new MyValueChanged(afterMyValueChanged);
}
private void afterMyValueChanged(object sender, EventArgs e)
{
//do something