委托 Action和Func,event

其实 delegate action func event 用法上都是一样的,概念和定义上不一样


Action 无参数,无返回值

1.定义无参委托Action

  Action NoparamMethod;

2.加入委托链

  NoparamMethod += MyMethod;

3.触发委托

  NoparamMethod();

Action<T>   泛型T参数,不带返回值

1.定义泛型带参委托

  Action<string> TActionMethod;

2.加入委托链

  TActionMethod+= TMyMethod;

3.触发委托

  TActionMethod("abc");

Func<in,out> 泛型带返回值(可带参,也可不带参)

1.定义

Func<string> SendFunc;    //不带参数,但是带返回值

Func<string,string> SendFunc;   //带1个string参数,带返回值

2.加入委托链

SendFunc += FMethod;

3.触发委托

string result = SendFunc("abc");

 Event

1.定义

public event EventHandler MyEvent;

2.加入委托链,注册事件

public void Mythod(Sender sender,EventArgs e)

{

  MessageBox.Show("自定义的event");

}

MyEvent += Mythod;

3.触发事件

//继承EventArgs

public class MyEventArgs:EventArgs

{

  public string text{get;set}

}

MyEvent(this,new MyEventArgs(){text="abc"});

posted @ 2020-04-26 15:15  boenotuch  阅读(258)  评论(0编辑  收藏  举报