.NET中的Func委托用法】的更多相关文章

MSDN对于Func<T, TResult>)的官方解释: 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法. 下面通过几个例子对比下,就容易知道其用法: 以下例子演示了如何利用委托将字符串转化为大写:     delegate string ConvertMethod(string inString);    private static string UppercaseString(string inputString)    {        return inputS…
今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景. Func,Action,Predicate全面解析 首先来说明Func委托,通过MSDN我们可以了解到,Func委托有如下的5种类型: (1) *delegate TResult Func<TResult>(); (2)*delegate TResult Func<T1,TResult>(T1 arg1); (3) *delegate TResult Func&…
前言 最近在阅读某开源框架源码的时候,发现作者在其中运用了很多Action委托和Func委托,虽然我之前在项目中也有一些对委托的实操,但还是免不了长时间的不用,当初消化的一些委托基础都遗忘了...索性,趁热打铁,借助这次分享的机会,也帮自己重新巩固下.Net中关于委托的一些基础用法. 直奔主题 从.Net Framework1.0开始就为我们提供了委托的功能使用.那个时候.Net内置委托Action和Func还没有问世,那么,我们先来看看1.0版本时候的委托.委托从字面上来理解就是"帮别人干活&…
一.基础定义 老王想找老张的老婆出去耍,但是一看,老张还在厨房煮饭.于是老王就对老张隔壁的淑芬说:"等下老张吃完饭出去喝茶,你就把前门晒的苞谷收了,老张从左门出,你就收右边的苞谷,我就知道从鸡舍进来.老张从右门出,你就收左墙的苞谷,我就从侧屋翻墙进来". 在这个过程中, 事件就是:"老张吃完饭去喝茶" 委托就是:"把前门的苞谷收了" 回调函数就是:"找老张的老婆去耍" sender就是:老张 事件句柄就是: 淑芬 EventA…
最近在写ORM框架,其中遇到一个难点,就是作为框架调用方如何将查询条件传入框架内.其中就用到了Expression. Func委托 要Expression先要了解Func委托,Func委托的样式是: Func<T,TResult> 他是一种C#提供的固定的委托方法,算是微软提供的一种语法糖. 举例说明: 1 //声明 2 Func<int, int> func = f => f + 1; 3 //调用 4 int funcResult=func(1); 5 6 //结果=2…
ref表示引用的意思,C#中它有多种用法,这里简单总结一下: 1.按引用传递参数 具体可见:C#中的值传递与引用传递(in.out.ref) 2.引用局部变量 引用局部变量指的是在变量声明时使用ref关键字(或者使用ref readonly表示未只读),表示这个变量是另一个变量的引用,而不是值对象的赋值,或者引用类型的地址,这个引用可以理解为一个别名,操作这个别名对象与操作原始对象无异! 引用局部变量声明时必须初始化,而初始化引用局部变量需要使用ref赋值运算符(= ref): var i =1…
C#中的Action<>和Func<> 其实他们两个都是委托[代理]的简写形式. 一.[action<>]指定那些只有输入参数,没有返回值的委托 Delegate的代码: [csharp] view plain copy print? public delegate void myDelegate(string str);   public static void HellowChinese(string strChinese)   {        Console.W…
Func<T, TResult> 委托 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法. 命名空间: System 程序集: mscorlib(在 mscorlib.dll 中) 语法 C# public delegate TResult Func<in T, out TResult>( T arg ) 类型参数 in T 此委托封装的方法的参数类型. 此类型参数是逆变.即可以使用指定的类型或派生程度更低的类型.有关协变和逆变的详细信息,请参阅泛型中的协变和逆变…
以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发现确实代码简洁了不少.这两种方式我们也可以去实践的过程去慢慢运用. 先说一下委托: 模拟一下场景:小明最近学习情绪高涨,以前买的书已经满足不了欲望,打算去买本(一个程序员的自我修养).可是呢以前总是跑书厂买,nm,太远了扛不住,就去跑去附近书店去买,小明去给钱就弄了一本书回来,这个过程就是委托.开始…
1.什么是Func委托 Func委托代表有返回类型的委托 2.Func委托定义 查看Func的定义: using System.Runtime.CompilerServices; namespace System { // // 摘要: // 封装一个方法,该方法具有两个参数,并返回由 TResult 参数指定的类型的值. // // 参数: // arg1: // 此委托封装的方法的第一个参数. // // arg2: // 此委托封装的方法的第二个参数. // // 类型参数: // T1:…