博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
委托到Lambda的进化: ()=> {} 这个lambda表达式就是一个无参数的委托及具体方法的组合体。...
阅读量:6198 次
发布时间:2019-06-21

本文共 2042 字,大约阅读时间需要 6 分钟。

1.原始的委托 (.net 1.0)

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;namespace WindowsFormsAppLINQ{    public partial class Form1 : Form    {        public delegate void MyDelegate();        public Form1()        {            InitializeComponent();            MyDelegate myDelegate = new MyDelegate(DoSomething);            myDelegate();        }        public void DoSomething()        {            MessageBox.Show("Hello");        }    }}

2.Action预定义委托, 节省了委托的定义.

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsAppLINQ{    public partial class Form2 : Form    {        public Form2()        {            InitializeComponent();            Action myDelegate = new Action(DoSomething);            myDelegate();        }        public void DoSomething()        {            MessageBox.Show("Hello");         }    }}

3.Lambda表达式, 再省掉方法定义.

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsAppLINQ{    public partial class Form3 : Form    {        public Form3()        {            InitializeComponent();            Action myDelegate = new Action(() => { MessageBox.Show("Hello"); });            myDelegate();        }           }}

4.一对小括号, 直接执行.

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsAppLINQ{    public partial class Form4 : Form    {        public Form4()        {            InitializeComponent();            new Action(() => { MessageBox.Show("Hello"); })();        }    }}

 总结,()=> {} 这个lambda表达式就是一个无参数的委托及具体方法的组合体,这是一个常规的套路,可以直接记住。

 

转载地址:http://lbjca.baihongyu.com/

你可能感兴趣的文章
fileAs访问拒绝and net后台打开服务器端文件和关闭服务器端文件
查看>>
POJ 3020 Antenna Placement
查看>>
POJ 1486 Sorting Slides (KM)
查看>>
解决 NDP40-KB2468871不能安装
查看>>
《数据结构与算法分析》学习笔记(三)——链表ADT
查看>>
通信原理实践(三)——FM调制
查看>>
mysql 学习总结
查看>>
Hadoop--有关Hadoop的启动
查看>>
[Leetcode] Search a 2D Matrix
查看>>
(转)浅谈分布式
查看>>
sql server 分组统计
查看>>
比较GUID是否相等
查看>>
Aptana Eclipse Plug-in Installation
查看>>
Qt How to get the width and height of a widget
查看>>
TechNet Video > Media > Screencasts > Introducing Chargeback
查看>>
FDMemTable内存表操作
查看>>
咏南中间件当作WEB SERVER使用方法
查看>>
layout_weight体验(实现按比例显示)
查看>>
RHCSA/RHCE Red Hat Linux认证学习指南(第6版):EX200 & EX300
查看>>
ASP.NET获取汉字拼音的首字母
查看>>