普通委托到泛型委托到Linq
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的更多相关文章
- C# 委托 (一)—— 委托、 泛型委托与Lambda表达式
C# 委托 (一)—— 委托. 泛型委托与Lambda表达式 2018年08月19日 20:46:47 wnvalentin 阅读数 2992 版权声明:此文乃博主之原创.鄙人才疏,望大侠斧正.此 ...
- 委托、多播委托、泛型委托Func,Action,Predicate,ExpressionTree
当试图通过一个事件触发多个方法,抽象出泛型行为的时候,或许可以考虑使用委托. 通过委托构造函数或委托变量把方法赋值给委托 private delegate double DiscountDel ...
- 委托、泛型委托、多播委托、匿名函数、lamda表达式、事件
1.为什么要使用委托 将一个方法作为参数传递给另一个方法 2.委托概念 public delegate int 委托名(int a, int b); 声明一个委托类型,可以用访问修饰符修饰,deleg ...
- c#委托、泛型委托和匿名方法
题外话:别指望看第一遍书就能记住和掌握什么——请看第二遍.第三遍. 本人女猿一枚,2年工作经验,喜欢钻研,喜欢创新,闲暇之余喜欢写写博客,深知自身能力薄弱,如表达错误.不当之处请园友们多多指出,互相交 ...
- 委托delegate 泛型委托action<> 返回值泛型委托Func<> 匿名方法 lambda表达式 的理解
1.使用简单委托 namespace 简单委托 { class Program { //委托方法签名 delegate void MyBookDel(int a); //定义委托 static MyB ...
- 委托,匿名方法,Lambda,泛型委托,表达式树
一.委托:完成一个委托应分三个步骤://step01:首先用delegate定义一个委托;public delegate int CalculatorAdd(int x, int y);//step0 ...
- 泛型委托 Predicate/Func/Action
Predicate 泛型委托 表示定义一组条件并确定指定对象是否符合这些条件的方法.此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素.看看下面它的定义: // Summar ...
- .net学习之新语法学习(匿名类和匿名方法,扩展方法,系统内置委托,Lambda表达式和linq等)
1.自动属性 Auto-Implemented Properties 2.隐式类型 var var变量不能作为全局变量使用,因为不能在编译时确定类型 3.参数默认值 和 命名参数 4.对象初始化器 ...
- 使用.NET中的Action及Func泛型委托
委托,在C#编程中占有极其重要的地位,委托可以将函数封装到委托对象中,并且多个委托可以合并为一个委托,委托对象则可以像普通对象一样被存储.传递,之后在任何时刻进行调用,因此,C#中函数回调 ...
随机推荐
- bored
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...
- 剑指Offer:面试题15——链表中倒数第k个结点(java实现)
问题描述 输入一个链表,输出该链表中倒数第k个结点.(尾结点是倒数第一个) 结点定义如下: public class ListNode { int val; ListNode next = null; ...
- python学习笔记(SMTP邮件发送:带附件)
博主有段时间没有更新博客了 先整理一个之前整理过的SMTP邮件发送,这次是带附件的功能 #!/usr/bin/env python # -*- coding: utf_8 -*- from email ...
- yii中第三方库
yii中存在一些路径别名:ext:表示包含了所有第三方扩展的目录 参考:http://www.yiiframework.com/doc/guide/1.1/zh_cn/basics.namespac ...
- No.004 Median of Two Sorted Arrays
4. Median of Two Sorted Arrays Total Accepted: 104147 Total Submissions: 539044 Difficulty: Hard The ...
- 关键字 base 的作用
①调用基类上已被其他方法重写的方法,小栗子a如下: public class Father { public virtual void Show() { Console.WriteLine(" ...
- 开源安全平台Ossim 4.5系统使用入门(高清视频)
开源安全平台Ossim 4.5系统使用入门 时长:15分钟 观看地址: http://www.tudou.com/programs/view/Yb0m4vPYlIQ/ 视频截图: 650) this. ...
- Redis 1:简介
导读:在今日开讲的项目中,用到了redis数据库.老听大家在说,我都不知道是个啥玩意儿.然后这两天在准备知识分享的事儿,我先大概了解了解,然后讲的时候,能有点共鸣.所以,本篇博客,是在自己跟读完MVA ...
- badge ionic tab
我需要在tab上动态显示 badge badge="badges.carts" badge-style="badge-assertive" 将这段代码 放在了 ...
- PAT1076. Forwards on Weibo(标准bfs模板)
//标准的层次遍历模板 //居然因为一个j写成了i,debug半天.....解题前一定要把结构和逻辑想清楚,不能着急动手,理解清楚题意,把处理流程理清楚再动手,恍恍惚惚的写出来自己慢慢debug吧 # ...