c# 委托/事件/Action/Func

委托

委托(Delegate)类似于 C 或 C++ 中函数的指针。委托是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。委托(Delegate)特别用于实现事件和回调方法。所有的委托都派生自 System.Delegate 类。把一个方法当作参数传递,让其它方法进行调用执行。

委托声明决定了可由该委托引用的方法。委托可指向一个与其具有相同标签的方法。

事件

事件就是一种特殊的委托;相当于委托的封装;使用 "+" 运算符进行合并;"-" 运算符可用于从合并的委托中移除组件委托;

泛型委托预定义委托

  有了上面的使用之后,我们会发现委托基本都是根据具体方法来声明的,如果不同的方法有3个,4个或者更多的参数,显然,我们需要分别声明不同参数个数的委托,不经意间多了一道“声明委托”的门槛。于是,在.Net Framework3.5版本之后发布了.Net自带的内置委托Action和Func。我们不用再做“声明委托”的工作,直接可以使用。

Action

 Action委托提供无参数、有参数方法,但不提供返回类型,具有Action、Action<T>、Action<T1,T2>、Action<T1,T2,T3>……Action<T1,……T16>多达16个参数的形式,其中传入参数均采用泛型T,涵盖了几乎所有可能存在的无返回值的委托类型。

Func

Func委托提供无参数、有参数方法,同时提供返回类型,具有Func<TResult>、Func<T,Tresult>……Func<T1,T2,T3……,Tresult>17种类型重载,T1……T16为参数,Tresult为返回类型。

Action委托和Func委托还支持匿名函数、lamda表达式形式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值