委托、事件、Action、Function

#csharp

Delegate 委托

作为函数容器
先有模板,使用时先注册+=
执行的时候.Inoke(),函数容器内方法就会执行

用法

public delegate void delegateDemo(string Res, string fileName);  
  //可传参也可以无参
 
public delegateDemo delegateName;  

风险

会被直接赋值
赋值时会导致容器内的函数丢失

Event 事件

事件是具有限定功能的委托

  • 不可赋值性
  • 仅内部触发

用法

声明时添加event

用法

public delegate void delegateDemo(string Res, string fileName);  
  //可传参也可以无参
 
public event delegateDemo delegateName;  

优势

关闭了委托的赋值权限

Action

[[委托、事件、Action、Function#Delegate 委托|委托]]的简单使用,是c#封装好的委托写法,也存在和委托一样的问题,赋值是public

用法

public Action actionName(int i);
//一行搞定

Function

[[委托、事件、Action、Function#Delegate 委托|委托]]的简单使用
带返回值的Action

用法

public Func<int> functionName(); //return int 
public Func<int,bool> functionName2();//return bool
//一行搞定
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值