Action<>和Func<> 区别】的更多相关文章

Action<>和Func<>其实都是委托的[代理]简写形式. 简单的委托写法: //普通的委托 public delegate void myDelegate(string str); //Delegate委托调. myDelegate dDelegate = new myDelegate(SayHellow); dDelegate("Mr wang"); //测试方法 public static void SayHellow(string name) { C…
一.说明 一般我们定义委托都是有如下两步: public delegate void MyDelegate(string name);//定义委托 public MyDelegate myDelegate; //使用委托 但.Net也提供了定义好的委托,我们可以直接使用. 二.定义 System.Action 无返回值 Action: public delegate void Action (); Action< T >: public delegate void Action< T &…
其实他们两个都是委托[代理]的简写形式. 一.[action<>]指定那些只有输入参数,没有返回值的委托 Delegate的代码: public delegate void myDelegate(string str); public static void HellowChinese(string strChinese) { Console.WriteLine("Good morning," + strChinese); Console.ReadLine(); } myD…
平时我们如果要用到委托一般都是先声明一个委托类型,比如: private delegate string Say(); string说明适用于这个委托的方法的返回类型是string类型,委托名Say后面没有参数,说明对应的方法也就没有传入参数. 写一个适用于该委托的方法: public static string SayHello() { return "Hello"; } 最后调用: static void Main(string[] args) { Say say = SayHel…
以前一直迷迷糊糊的,现在总算搞明白. Lambda表达式 Lamda表达式基本写法是()=>{ };Lambda和方法一样都可以传入参数和拥有返回值.(int x)=>{return x;};Lambda表达式并不是C#独有的,其它语言也拥有Lambda表达式. 一些文档上写Lambda是匿名函数,我认为是不对的,Lambda可以表示一个匿名函数,但是还可以来表示Linq表达式啊. delegate委托 委托基本的使用包括声明一个委托.实例化一个委托.使用一个委托. // 声明一个委托,类型是…
Action 无返回值 Func 有返回值,且最后一个参数为返回值 Action用法 public static void test(string s) { Console.WriteLine("name1:{0}", s); } static void Main(string[] args) { Action<string> action_ = new Action<string>(test); action_ -= test; action_ += dele…
Action和Func泛型委托实际上就是一个.NET Framework预定义的委托,3.5引入的特性.基本涵盖了所有常用的委托,所以一般不用用户重新声明. Action系列泛型委托,是没有返回参数的委托,最多可以有16参数,也可以没有参数:Func系列的委托是有返回值的委托,最多可以有16个参数: 元组是C# 4.0引入的一个新特性,编写的时候需要基于.NET Framework 4.0或者更高版本.元组使用泛型来简化一个类的定义. 提供用于创造元组对象的静态方法.最多可以提供创建新的 8 元…
C# 中的两个动态委托类型 也就是说我们不用在使用委托的时候就去声明一个委托对象,而是通过Action和Func就可以模拟出我们自己要用到的委托 区别: Action 表示没有返回值的委托  例如:Action<T1,T2,T3> Func   表示有返回值的参数    例如:Func<T1,T2,T3,TResult>  其中TResult表示的是返回值类型 代码: public int Sum(int a,int b) { return a+b; } public void o…
前言 最近在阅读某开源框架源码的时候,发现作者在其中运用了很多Action委托和Func委托,虽然我之前在项目中也有一些对委托的实操,但还是免不了长时间的不用,当初消化的一些委托基础都遗忘了...索性,趁热打铁,借助这次分享的机会,也帮自己重新巩固下.Net中关于委托的一些基础用法. 直奔主题 从.Net Framework1.0开始就为我们提供了委托的功能使用.那个时候.Net内置委托Action和Func还没有问世,那么,我们先来看看1.0版本时候的委托.委托从字面上来理解就是"帮别人干活&…
一.基础定义 老王想找老张的老婆出去耍,但是一看,老张还在厨房煮饭.于是老王就对老张隔壁的淑芬说:"等下老张吃完饭出去喝茶,你就把前门晒的苞谷收了,老张从左门出,你就收右边的苞谷,我就知道从鸡舍进来.老张从右门出,你就收左墙的苞谷,我就从侧屋翻墙进来". 在这个过程中, 事件就是:"老张吃完饭去喝茶" 委托就是:"把前门的苞谷收了" 回调函数就是:"找老张的老婆去耍" sender就是:老张 事件句柄就是: 淑芬 EventA…