天天看点

[C#基础]Func和Action学习

<a href="http://www.cnblogs.com/wolf-sun/p/3871192.html#t1">委托</a>

<a href="http://www.cnblogs.com/wolf-sun/p/3871192.html#t4">action</a>

<a href="http://www.cnblogs.com/wolf-sun/p/3871192.html#t2">func</a>

<a href="http://www.cnblogs.com/wolf-sun/p/3871192.html#t5">总结</a>

<a href="http://www.cnblogs.com/wolf-sun/p/3293150.html">委托的那些事</a>

关于委托的基本定义,在很久之前的这篇文章中,有个简单的介绍。稍微回顾一下。

委托是c#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针 声明委托的方式:delegate 返回值类型 委托类型名(参数) 例如:
[C#基础]Func和Action学习
[C#基础]Func和Action学习
[C#基础]Func和Action学习

上面介绍了,平时用委托的一般方式,先声明委托,然后再去使用,有点麻烦,.net中有已经定义好的委托类型,可以拿来直接用。

action委托有两种方式:无参数无返回值的委托,有至少一个最多16个的参数无返回值的泛型委托。

action泛型委托根据输入参数个数的不同,action委托有十六个重载

[C#基础]Func和Action学习

用action改写上面的例子,上面的例子中委托是无返回值有string类型的输入参数,所以使用action的泛型版本。

[C#基础]Func和Action学习
[C#基础]Func和Action学习

结果:

[C#基础]Func和Action学习

上面代码中,列出了action泛型委托的使用方式,以及使用lambda的方式,action也可以使用匿名方法,选择一种自己上手的来用即可。

如果要用有输入参数,有返回值的委托,那么func委托将满足你的要求。

func泛型委托,可以没有输入参数,但必须有返回值。根据输入参数的多少有17个重载。

[C#基础]Func和Action学习

in:输入参数

out:输出参数,也就是返回值。

一个案例

输入名字,年龄,性别,对年龄,性别,姓名进行修改后输出。

[C#基础]Func和Action学习
[C#基础]Func和Action学习
[C#基础]Func和Action学习

func泛型委托,可以没有输入参数,但是必须有输出参数。

action:无参数无返回值委托。

action&lt;t&gt;:泛型委托,无返回值,根据输入参数的个数不同有十六个重载。

func&lt; out t&gt;:无输入参数,有返回值。

func&lt;in t,out t&gt;:有输入参数,有返回值,根据输入参数个数不同,有十六个重载。

action和func中可以使用lambda和匿名方法处理方法体内逻辑。

(天太热,人很躁,在你不知道做什么的时候,不如静下来对基础进行查漏补缺,能掌握一点是一点,别总抱怨,总烦躁,就算你抱怨,烦躁,最后该完成的事还是你的,不多不减就在那里,夏天这天气,太烦躁,啥事都不做了吗?难道敲代码不是一件开心的事吗?)

博客地址:

<a href="http://www.cnblogs.com/wolf-sun">http://www.cnblogs.com/wolf-sun/</a>

博客版权:

本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。

如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!

再次感谢您耐心的读完本篇文章。

转载:http://www.cnblogs.com/wolf-sun/p/3871192.html