使用事件的代码
//定义一个类
class Foo
{
//生明一个事件
public event myDelegate myEvent;
//定义一个委托
public delegate void myDelegate();
//定义一个方法
public void Fun()
{
Console.WriteLine("hello world.");
Console.ReadLine();
}
//定义一个方法,调用委托
public void Action()
{
myEvent();
}
}
class Program
{
static void Main(string[] args)
{
Foo f = new Foo();
f.myEvent += f.Fun;//当执行方法的时候调用的函数名称
f.Action();//运行方法
}
}
使用委托的方法
class Foo
{
//定义一个委托方法
public delegate void MyDelegate();
//声明一个委托名称
public MyDelegate ADelegate;
//随便定义一个方法
public void Fun()
{
Console.WriteLine("hello world.");
}
//执行一个方法方法
public void Action()
{
ADelegate();
}
}
class Program
{
static void Main(string[] args)
{
Foo f = new Foo();
f.ADelegate += f.Fun;//当执行方法的时候调用的函数名称
f.Action();//执行委托
}
}
区别一:event可以多播
class Foo
{
public event myDelegate myEvent;//声明一个事件
public delegate void myDelegate();//委托方法
public void Fun()
{
Console.WriteLine("hello world.");
}
public void Enjoy()
{
Console.WriteLine("hello C#");
}
//执行委托方法
public void Action()
{
myEvent();
}
}
class Program
{
static void Main(string[] args)
{
Foo f = new Foo();
//注册方法名称
f.myEvent += f.Fun;
f.myEvent += f.Enjoy; //<---
//执行方法名称
f.Action();
}
}
参考:http://bbs.csdn.net/topics/300226562