委托是一个类,
它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递
可以在两个类之间传递方法,破坏了封装行
例子:董事长监听雇员玩游戏
public delegate void DelegateClassHandle();//在类的外面,委托就是一个类
public class Employee
{
//定义了一个DelegateClassHandle类型的事件PlayGame,它的定义方式也很特殊,首先必须使用关键字event,表示PlayGame是一个事件,同时还必须声明该事件的委托类型为DelegateClassHandle,即将来由该类型的委托对象负责通知事件。
public event DelegateClassHandle PlayGame;
public void Games()
{
if (PlayGame != null)
{
PlayGame();//与事件一致
}
}
}
public class Admin
{
public void Notify()
{
System.Console.WriteLine("someone is playing game");
}
}
employee.PlayGame += new DelegateClassHandle(admin.Notify);
employee.Games();
网友评论