委托:
把方法当作参数进行传递
public delegate void AddDelegate(string name);
public class Ad{
//addDelegate就是委托的一个实例,把方法当作参数进行传递进去,逻辑分离,解除耦合
public static void AddHander(string name,AddDelegate addDelegate){
addDelegate(name);//调用该方法
}
}
public static void Add(string name){ cw(name);}
调用:
AddDelegate add = new AddDelegate(Ad.Add);//实例化委托
Ad.AddHander("abc",add);//把委托当参数传递进去
事件:
public delegate void CatDelegate();//定义一个委托
//声明一个猫
public class Cat{
public event CatDelegate catHander;//声明一个事件
public void MiaoCat(){
catHander.Invoke();//执行事件
}
}
定义:委托就是一种类型,事件是委托的一种实例;
调用:Cat cat =new Cat();
cat.catHander+=Run;//注册动作 Run()方法
cat.catHander+=Miao;//注册动作 Miao()方法
cat.MiaoCat();//执行调用事件方法,过程会依次执行Run、Miao这俩个方法