There was always a puzzle for me .
How to define a delegate?
How to create a event?
Of course,the delegate must appear early than event.
Step1: create a application class including delegate,event,trigger
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DelegateEvent
{
class WaterWarning
{
public delegate void DeleType(int temperature);//like a function ,just a type
public event DeleType WaterEvent;//concrete event rely on type of delegate
public void Trigger(int temp) //a function used to trig the event
{
if (WaterEvent != null) //if registered event,not null
WaterEvent(temp);
}
}
}
step2:main class
You should register a method for an event.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DelegateEvent
{
class Program
{
private void Func()
{
Console.WriteLine("ok");
}
static void Main(string[] args)
{
WaterWarning WaterClass = new WaterWarning();
WaterClass.WaterEvent += new WaterWarning.DeleType(WaterClass_WaterEvent);
WaterClass.Trigger(70);
}
static void WaterClass_WaterEvent(int temperature)
{
if (temperature > 60)
Console.WriteLine("the temperature is hot,the value is {0}", temperature);
}
}
}
That's all,very easy!