其实 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"});