Action<>和Func<>其实都是委托的【代理】简写形式。

简单的委托写法:

 1 //普通的委托
 2 public delegate void myDelegate(string str);
 3
 4 //Delegate委托调。
 5 myDelegate dDelegate = new myDelegate(SayHellow);
 6 dDelegate("Mr wang");
 7
 8 //测试方法
 9 public static void SayHellow(string name)
10 {
11      Console.WriteLine("Hello,"+name);
12      Console.ReadLine();
13 }

View Code

Action<>指定那些只能输入参数,没有返回值的委托。

 1 Action<string> action = SayHellow; //Action<string>中string为参数类型。
 2 action("ZhangSan");
 3
 4
 5 //测试方法
 6 public static void SayHellow(string name)
 7 {
 8             Console.WriteLine("Hello,"+name);
 9             Console.ReadLine();
10  }

View Code

Func<>使用方法和Action<>相似,区别是这个 有返回值。

1 Func<string,string> func=SayHello; //Func<>中参数前面都是方法所传参数类型,只有最后一个类型为委托返回 类型。
2 Console.WriteLine(func("ZhangSan"));
3
4
5 //测试方法。
6 public static string SayHello(string name)
7 {
8        return "Hello." + name;
9  }

View Code

转载于:https://www.cnblogs.com/zqhxl/p/4468902.html

Action和Func区别相关推荐

  1. C#中的Action和Func 区别

    Action只能委托必须是无返回值的方法 Fun只是委托必须有返回值的方法 一.[action<>]指定那些只有输入参数,没有返回值的委托 Delegate的代码: public dele ...

  2. C# action,delegate,func的用法和区别

    以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...

  3. C# Delegate、delegate、 Action、 Func

    首先Delegate 和delegate,Delegate是类, delegate是关键字,按照官网的解释,使用delegate定义的委托类型,最终会被编译器编译为Delegate类型 Action和 ...

  4. 使用.NET中的Action及Func泛型委托

    原文 http://www.cnblogs.com/skm-blog/archive/2013/05/24/3096294.html 委托,在C#编程中占有极其重要的地位,委托可以将函数封装到委托对象 ...

  5. C#之Action和Func的用法(转自 https://www.cnblogs.com/LipeiNet/p/4694225.html)

    以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...

  6. C#之Action和Func的用法

    以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...

  7. C#委托(delegate、Action、Func、predicate)和事件

    C#委托(delegate.Action.Func.predicate)和事件 - 园子的蜗牛 - 博客园 C#之委托 - 摸鱼王 - 博客园 C++函数指针与C#委托之间有何联系 - 51CTO.C ...

  8. C#泛型委托Predicate、Action、Func

    Predicate Predicate泛型委托:表示定义一组条件并确定指定对象是否符合这些条件的方法.此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素. 通过查看源码发现 P ...

  9. vuex中mutation和action的详细区别

    一.vuex中mutation和action的详细区别 const store = new Vuex.Store({state: {count: 0},mutations: {increment (s ...

最新文章

  1. MongoDB安装和MongoChef可视化管理工具的使用
  2. Django博客系统(详情评论数据展示)
  3. Linux用户权限acl配置
  4. linux zookeeper安装并设置开机自启
  5. 02python 中的线程
  6. 学习笔记(48):Python实战编程-grid布局
  7. jzoj5248-[NOIP2017提高A组模拟8.10]花花的聚会【倍增,树形dp】
  8. mybatis3源码2-查询
  9. 手机怎么安装py thon_Python调试器– Py​​thon pdb
  10. 「转载」微服务分布式架构中,如何实现日志链路跟踪?
  11. STC学习:光照报警器
  12. 【记录】【解决方案】java发邮件错误:Couldn‘t connect to host, port: localhost, 25; timeout -1;易邮SMTP服务器无法启动;
  13. 快速在越狱iphone手机下定位app安装包并且导出的方法
  14. 自制solidworks图框步骤_solidworks工程图模板制作教程(上) - CAD自学网
  15. 简便word批量打印 - Office批量打印精灵(支持正版)
  16. H.264视频的RTP有效负载格式 (RFC-6184)
  17. Python 创建子线程
  18. 单片机炫彩灯实训报告_51单片机呼吸灯实验报告.doc
  19. RF之处理鼠标悬停和alert弹窗事件
  20. android gps定位完整代码,android GPS定位 (完整代码实例)

热门文章

  1. 前端学习(3060):vue+element今日头条管理-处理展示文章封面
  2. [vue] vue过渡动画实现的方式有哪些?
  3. [css] 请举例说明css有哪些不可继承的属性?
  4. 工作226:for循环逻辑
  5. 前端学习(2181):vue-router导航守卫的补充
  6. “约见”面试官系列之常见面试题之第七十四篇之v-if和v-for优先级(建议收藏)
  7. 前端学习(535):多列布局2
  8. 实例40:python
  9. rpm包安装mysql数据库
  10. c语言编译生成cpp,C语言的编译过程