Thursday, May 28, 2009

C# Events Example

First u hav Number Class

//Numbers.cs

using System;
public delegate int intDel();
public class Numbers
{
public event intDel  NegativeNumber;
public event intDel  GreaterThanHundered;
public event intDel  ValueChanged;

int _x =0;
public int X{
    get{
return _x;   
    }
    set{
if (value==0)
return;
_x+=value;
ValueChanged();
      if (_x<0)
NegativeNumber() ;
if(_x>100)
GreaterThanHundered();
     }
 }
}


Next u hav Sample class

//Sample.cs

using System;
public class sample
{
Numbers obj;
intDel d;
public static void Main(string[] args) {
sample s=new sample();
s.obj=new Numbers();
s.obj.GreaterThanHundered+=new intDel(s.maxNumber );
s.obj.NegativeNumber+=new intDel(s.negativeNumber );
s.d=new intDel(s.change );
s.obj.ValueChanged+=s.d;
s.obj.ValueChanged+=new intDel(s.Log);

Console.WriteLine(s.obj.X.ToString());
s.obj.X=Convert.ToInt32(args[0]);
Console.WriteLine("***********");
s.obj.X=(Convert.ToInt32(args[0])*100);
}
private int maxNumber(){
Console.WriteLine("Value > 100");
return 0;
}
private int negativeNumber(){
Console.WriteLine("Value <>
return 0;
}
private int change(){
Console.WriteLine("value Changed : "+ obj.X.ToString());
obj.ValueChanged-=this.d;
return 0;
}
private int Log(){
Console.WriteLine("value Logged : "+ obj.X.ToString());
return 0;
}

}