//Subscriber.cs
using System;
public class Subscriber{
public void GreaterThanHundred(Numbers source){
Console.WriteLine("*****GreaterThanHundred "+source.Num);
}
public void LessThanZero(Numbers source){
Console.WriteLine("*****LessThanZero "+source.Num);
}
public void ValueUpdated(Numbers source){
Console.WriteLine("*****ValueUpdated "+source.Num);
}
public void LogChange(Numbers source){
Console.WriteLine("*****LogChange "+source.Num);
}
}
//Numbers.cs
public delegate void Numberdel(Numbers source);
public class Numbers{
//attributes
private int num=70;
//events
public Numberdel ValueChanged;
public Numberdel LargeNumber;
public Numberdel NegativeNumber;
//properties
public int Num{
get{
return num;
}
set{
if (0==value)
return;
num+=value;
ValueChanged(this);//raise an event
if(num>100)
LargeNumber(this);//raise an event
if(num<0)
NegativeNumber(this);//raise an event
}
}
}
Atlast u hav Mediator Class
//Mediator.cs
public class Mediator{
public static void Main(System.String[] args){
Numbers obj= new Numbers();
Subscriber s=new Subscriber();
obj.ValueChanged=new Numberdel(s.ValueUpdated);
obj.ValueChanged+=new Numberdel( s.LogChange);
obj.LargeNumber=new Numberdel(s.GreaterThanHundred);
obj.NegativeNumber=new Numberdel(s.LessThanZero);
obj.Num=int.Parse(args[0]);
}
}