private delegate bool delTest(int a);

        private void button1_Click(object sender, EventArgs e)
{ var arr = new List<int>() { 1, 2, 3, 4, 5, 6 }; //集合初始化器 //var d1 = SomethingFactory<int>.InitInstance(12); var d1 = new delTest(More); //默认委托 var d2 = new Predicate<int>(More); //带一个参数的泛型委托 var d3 = new Action<int, string>(twoParamNoReturnAction); //带多个参数的泛型委托,有返回值 var d4 = new Func<int, string>(oneParamOneReturnFunc); //带多个参数的泛型委托,无返回值 var d5 = new Action<int, string>(delegate(int item, string item1) { Console.WriteLine(item.ToString() + "," + item1);}); //匿名方法 var d6 = new Action<int,string>((item,item1)=> Console.WriteLine(item.ToString() + "," + item1)); //Lambda表达式 var d7 = arr.Where(delegate(int a) { return a > 3; }).Sum(); //Line Where调用一个 Func<int,bool>类型的泛型委托 var d8 = arr.Where(a => { return a > 3; }).Sum(); //Linq Where用Lambda表达式表示的泛型委托 var d9 = (from v in arr where v > 3 select v).Sum(); //Linq语句 } static void noParamNoReturnAction()
{
//do what you want
} static void twoParamNoReturnAction(int a, string b)
{
//do what you want
} static string oneParamOneReturnFunc(int a)
{
return string.Empty;
} static bool More(int item)
{
if (item > 3)
{
return true;
}
return false;
} static bool Less(int item)
{
if (item < 3)
{
return true;
}
return false;
}
}

  

普通委托到泛型委托到Linq的更多相关文章

  1. C# 委托 (一)—— 委托、 泛型委托与Lambda表达式

    C# 委托 (一)—— 委托. 泛型委托与Lambda表达式 2018年08月19日 20:46:47 wnvalentin 阅读数 2992   版权声明:此文乃博主之原创.鄙人才疏,望大侠斧正.此 ...

  2. 委托、多播委托、泛型委托Func,Action,Predicate,ExpressionTree

    当试图通过一个事件触发多个方法,抽象出泛型行为的时候,或许可以考虑使用委托.     通过委托构造函数或委托变量把方法赋值给委托 private delegate double DiscountDel ...

  3. 委托、泛型委托、多播委托、匿名函数、lamda表达式、事件

    1.为什么要使用委托 将一个方法作为参数传递给另一个方法 2.委托概念 public delegate int 委托名(int a, int b); 声明一个委托类型,可以用访问修饰符修饰,deleg ...

  4. c#委托、泛型委托和匿名方法

    题外话:别指望看第一遍书就能记住和掌握什么——请看第二遍.第三遍. 本人女猿一枚,2年工作经验,喜欢钻研,喜欢创新,闲暇之余喜欢写写博客,深知自身能力薄弱,如表达错误.不当之处请园友们多多指出,互相交 ...

  5. 委托delegate 泛型委托action<> 返回值泛型委托Func<> 匿名方法 lambda表达式 的理解

    1.使用简单委托 namespace 简单委托 { class Program { //委托方法签名 delegate void MyBookDel(int a); //定义委托 static MyB ...

  6. 委托,匿名方法,Lambda,泛型委托,表达式树

    一.委托:完成一个委托应分三个步骤://step01:首先用delegate定义一个委托;public delegate int CalculatorAdd(int x, int y);//step0 ...

  7. 泛型委托 Predicate/Func/Action

    Predicate 泛型委托  表示定义一组条件并确定指定对象是否符合这些条件的方法.此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素.看看下面它的定义: // Summar ...

  8. .net学习之新语法学习(匿名类和匿名方法,扩展方法,系统内置委托,Lambda表达式和linq等)

    1.自动属性 Auto-Implemented Properties 2.隐式类型 var  var变量不能作为全局变量使用,因为不能在编译时确定类型 3.参数默认值 和 命名参数 4.对象初始化器 ...

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

          委托,在C#编程中占有极其重要的地位,委托可以将函数封装到委托对象中,并且多个委托可以合并为一个委托,委托对象则可以像普通对象一样被存储.传递,之后在任何时刻进行调用,因此,C#中函数回调 ...

随机推荐

  1. 用github pages展示你的静态网页,多项目支持

    我看到有分享用github pages来做博客的,不过我并不想挂博客在上面,我只是想将我的一些作品挂上去,然后链接到我的简历里,这样HR可以直接看到. 首先是最基本的操作,在github上创建一个新的 ...

  2. mysql创建远程用户

    grant all privileges on *.* to myuser@"%" identified by 'password'; 用root用户登陆,然后: grant al ...

  3. robotframework+ride+Selenium2Library+AutoItLibrary配置

    最近要安装RFS,虽然网上很多安装说明,但是自己装的时候还是遇到了很多问题. 1. AutoLibrary导入失败:猜测原因是AutoLibrary需要先安装pywin32,而我一开始安装的是pyth ...

  4. eclipse打开出错 Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'

    eclipse出现注册错误:①在“打开”输入框中输入“regedit”命令,删除注册表的HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\  的INSTALLDIR删除. 或者 ...

  5. python常用内置函数

    Python所以内置函数如下: 下面列举一些常用的内置函数: chr()和ord() chr()将数字转换为对应的ascii码表字母 >>> r=chr(65) >>&g ...

  6. 【MySQl】MyISAM和InnoDB索引对比

    部分内容转自:http://www.2cto.com/database/201211/172380.html 比较好的文章:http://www.cnblogs.com/hustcat/archive ...

  7. 使用python脚本实现基于指定字符串的文本排序

    朋友用ansible导出了一个文件,文件中包含上千台机器的磁盘信息,他想要知道哪些机器最需要赶紧扩磁盘.思路是,按剩余磁盘空间百分数,从小到大对文本内容重新排序.下面是具体实现. 源文件ip.txt的 ...

  8. OpenGL函数解析之glLoadIdentity()

    函数原型:void glLoadIdentity(void) 函数说明:调用glLoadIdentity()函数可以恢复初始坐标系,用一个4x4的单位矩阵来代替当前矩阵,实际上就是对当前矩阵进行初始化 ...

  9. C++ Builder技巧集锦

    /* 调用DOS程序时不显示窗口 使 用 ShellExecute调 用 DOS程 序 时 可 以 不 显 示 窗 口 , 如 :*/ ShellExecute(, "open", ...

  10. hdu2444

    #include <stdio.h> #include <string.h> #define black 1 #define white -1 ]; ]; ][]; int n ...