C#关于Func和Action委托的介绍详解
委托:委托(delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。
委托(delegate)特别用于实现事件和回调方法。所有的委托(delegate)都派生自 system.delegate 类。
1.action委托
没有返回值,可以不包含参数
(1)声明委托、定位委托事件、向委托添加事件、执行委托
输出结果:
由于btn_click为点击事件,点击第二次(第二次点击会再次向委托添加事件)的数据结果如下:
因此,向委托添加事件时,一个事件仅添加一次即可,若进行多次添加则调用委托时会将添加进入委托的所有事件进行调用,无论该事件是否已添加都会进行调用,故做如下处理(在构造函数中或在程序启动时添加委托事件):
上图中委托调用时提示波浪线,因为是委托在调用时可能未添加事件,将会抛出:未将对象引用设置到对象的实例的异常信息,
异常信息:
故调用时进行异常处理或做如下处理:
处理方案1:
处理方案2
此时,我们已经学会了action委托的简单使用,这时会有人考虑到,我想调用完返回信息action委托并没有返回,会限制我们的使用,不要着急,我们系统已经帮我们准备了一个现成的委托类型func,下面我们对func做个介绍。
2.func委托
话不多说,上代码,以下我们定义了包含两个参数int和double,返回值为string类型的func委托,并添加了两个事件fun_1和fun_2:
输出结果:
从输出结果不难看出向委托添加多个事件(委托的多播或组播),委托包含返回值时,仅得到最后向委托添加的事件(方法)的返回值,所以在使用有返回值时必须注意这一点。
以下为先添加fun_2后添加fun_1的返回结果:
到这里,委托的介绍我们已经介绍完了,更多相关c# func 和action 委托内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 斗鱼tv打不开怎么办?斗鱼tv打不开的原因以及解决方法
下一篇: 新手如何健身减脂
推荐阅读
-
C#关于Func和Action委托的介绍详解
-
C#关于Func和Action委托的介绍详解
-
C#委托(delegate、Action、Func、predicate)和事件
-
C#中的Action、Func和Predicate如何使用
-
C#中匿名函数、委托delegate和Action、Func、Expression、还有Lambda的关系和区别
-
Asp.Net中的Action和Func委托实现
-
浅谈C#中常见的委托<Func,Action,Predicate>
-
C#委托(delegate、Action、Func、predicate)和事件
-
通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系
-
C#中关于匿名委托和Lambda表达式的使用详解