C#_委托与事件

委托:

  把方法当作参数进行传递

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这俩个方法

原文地址:https://www.cnblogs.com/ingstyle/p/6389353.html