number changed

CSharp · Console

/Program.cs

using System;
					
public class Program
{
	public static void Main()
	{
		Console.WriteLine("Hello World");
		var num = new Number();
		num.numberChanged +=(o,n) =>{ // o stands for old value and n stands for new value
			Console.WriteLine("Value was changed from {0} to {1}",o,n);
		};
		num.Value=10; // this will let the numberChanged event to be fired
		num.Value=100;
	}
}

// this delegate was created to be used in passing the old and new value during event firing
public delegate void NumberChangedEvent(int oldValue,int newValue);

public class Number{
	public event NumberChangedEvent numberChanged;
	private int _value=0;
	public int Value
	{
		get
		{
			return _value;
		}
		set
		{
			if(value!=_value)
			{
				int oldValue=_value; // store the value in order to pass it in the event
				_value=value;
				if(numberChanged!=null)
					numberChanged(oldValue,_value);
			}
		}
	}
}
;