c# action<> func<> 这2个委托怎么用和理解
其实很好理解的呢!~首先你需要明白,他们是委托的简写形式。
一。【action<>】指定那些只有输入参数,没有返回值的委托
1.1定义一个委托:
比如,我们原来写委托:
public delegate void myDelegate(string str); 这个委托表示,它只能委托那些只有一个输入值而没有返回值的方法,比如下面的这个方法。
1.2定义方法
public static void HellowChinese(string strChinese)
{
Console.WriteLine("早上好," + strChinese);
}
1.3调用
myDelegate d = new myDelegate(HellowChinese);
d("王总");
1.4使用action委托这个方法。
如果我们用原来的方法调用HellowChinese方法,觉得很麻烦,还得自己定义一个委托。那有没有不需要很明白的定义委托呢?
好了,微软就弄了action这么一个委托,我们只需要把符合它要求的方法传进去 就OK啦。。
我方法还是用这个:
public static void HellowChinese(string strChinese)
{
Console.WriteLine("早上好," + strChinese);
}
那我调用这个方法的时候,我就不需要自定义delegate了。我这样就可以:
Action<string> action = HellowChinese;
action("王总");
这样就省去了,减少了很多步骤。

二。func<> 这个和上面的那个是一样的,区别是这个有返回值!~~~
2.1原先我们定义delegate
public delegate string myDelegate(string str);
2.2.定义方法
public static string HellowEnglish(string strEnglish)
{
return "Hellow " + strEnglish;
}
2.3 调用
myDelegate d = new myDelegate(HellowEnglish);
d("Lanny");
2.4使用func调用
方法还是一样
public static string HellowEnglish(string strEnglish)
{
return "Hellow " + strEnglish;
}
但是我们不需要自定义delegate了。。如下
Func<string, string> f = HellowEnglish;
f("Lanny");
就可以了
2.5截图

c# action<> func<> 这2个委托怎么用和理解的更多相关文章
- Delegate,Action,Func,匿名方法,匿名委托,事件 (转载)
Delegate,Action,Func,匿名方法,匿名委托,事件 (转载) 一.委托Delegate 一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本 ...
- (C#) Action, Func, Predicate 等泛型委托
(转载网络文章) (1). delegate delegate我们常用到的一种声明 Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型. 例:public del ...
- Delegate,Action,Func,匿名方法,匿名委托,事件
一.委托Delegate 一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如 public void HelloWorld ...
- 温故而知新:Delegate,Action,Func,匿名方法,匿名委托,事件
Tks: http://www.cnblogs.com/yjmyzz/archive/2009/11/23/1608818.html 20150801 add: http://www.cnblogs. ...
- c# Action,Func,Predicate委托
System命名空间下已经预先定义好了三中泛型委托,Action,Func和Predicate,这样我们在编程的时候,就不必要自己去定义这些委托了 Action是没有返回值的 Func是带返回值的 不 ...
- 委托delegate,Action,Func,Predicate
C#委托的介绍(delegate.Action.Func.predicate) 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递.事件是一种特殊的委托. 1.委托的声明 ...
- VS2012 Unit Test(Void, Action, Func) —— 对无返回值、使用Action或Func作为参数、多重载的方法进行单元测试
[提示] 1. 阅读文本前希望您具备如下知识:了解单元测试,了解Dynamic,熟悉泛型(协变与逆变)和Lambda,熟悉.NET Framework提供的 Action与Func委托.2.如果您对单 ...
- 使用Func<T1, T2, TResult> 委托返回匿名对象
Func<T1, T2, TResult> 委托 封装一个具有两个参数并返回 TResult 参数指定的类型值的方法. 语法 public delegate TResult Func< ...
- Predicate<T>与Func<T, bool>泛型委托
引用别人的: static void Main(string[] args) { List<string> l = new List<string>(); l.Add(&quo ...
随机推荐
- Java字符串跟ASCII码互转
1.由于项目中遇到,在服务器端起的jar包程序,给前台发消息后,前段收到的消息出现乱码情况,所以采取在后才发消息前先把消息字符串转成ASCII码再发往前台,前台采取在收到后台消息先把ASCII码转成字 ...
- 005.FTP本地用户访问
一 新建本地用户 [root@imxhy ftp]# useradd ftpuser #用于登陆ftp的用户 [root@imxhy ftp]# passwd ftpuser Changing pas ...
- 我现所认知的SSH
实习了三个月,对着SSH有着一定的认识了,就以自已认识的大概思路写一篇文章吧,留给以后的自已,也恳请各位博友们如果看到我的认识有过错的地方能帮我指正过来! 我用到的资料 在写正文之前,先说说我这段时间 ...
- Python中命名空间与作用域使用总结
1 引言 命名空间与作用域是程序设计中的基础概念,深入理解有助于理解变量的生命周期,减少代码中的莫名其妙bug.Python的命名空间与作用域与Java.C++等语言有很大差异,若不注意,就可能出现莫 ...
- Android-Activity的切换效果
Android-Activity的切换效果 Android-Activity的切换效果 Activity有一个默认的切换效果,但是有时候单一的切换效果未免单调,Activity的切换效果也是我们可以自 ...
- 火狐浏览器接口测试工具Poster
- jersey练习
package com.tz.router; import java.util.ArrayList; import java.util.Date; import java.util.List; imp ...
- RubyMine8 安装
在win7下面安装RubyMine8 中文 汉化 1.需要下载 RubyMine8的程序包 2.先安装好 RubyMine8 很简单 点击下一步就可以 选择安装目录这应该就不需要说了 3.汉化 ...
- spring-boot 速成(4) 自定义配置
spring-boot 提供了很多默认的配置项,但是开发过程中,总会有一些业务自己的配置项,下面示例了,如何添加一个自定义的配置: 一.写一个自定义配置的类 package com.example.c ...
- PHP-FPM 不完全指南
fpm工作流程 fpm全名是FastCGI进程管理器(FastCGI是啥?了解下cgi和fastcgi). fpm启动后会先读php.ini,然后再读相应的conf配置文件,conf配置可以覆盖php ...