C#匿名委托,匿名函数,lambda表达式
2015-04-02 21:50
267 查看
一、lambda表达式的由来
private void button1_Click(object sender, EventArgs e) { //匿名委托 //是一个没有名字的数据类型
//创建匿名委托的一个变量:Func<int, int> del
//怎样确定它的签名:需要若干数据类型作为参数(前面的规定参数类型,最后一个规定返回值类型)
//匿名函数 delegate(int a) { return a; }; //与普通函数的区别就是将函数名换成了delegate //下面的表达式,就是一个通过匿名委托定义的变量del引用了一个匿名函数 //与int a=1的过程,是相同的道理 //Func<int, int> del = delegate(int a) { return a; }; //MessageBox.Show(del(5).ToString()); //后来发现,匿名函数的参数与返回值的类型,肯定要与委托变量的对应,于是有了更简捷的写法 //就出现了lambda表达式 Func<int, int> del = a => { return a; }; MessageBox.Show(del(6).ToString()); }
小贴士:
定义一个匿名委托变量,好比我们确定要造一把枪,但是这把枪还不能工作,因为它只是完成了功能设计的阶段,枪的功能就是:给它一个子弹(参数),我们得到一个高速飞行的子弹(返回值); 将一个lambda表达式给这个委托变量赋值,好比给这把枪安装枪膛、扳机等内部构造的过程,这时枪可以工作了。
四、Winform窗体中的事件
Winform窗体事件:用预先定义好的委托(EventHandle)的定义的变量(接收两个参数)。
窗体里自带一个委托变量;我们做的就是给这个变量追加函数。
1.
给窗体Load事件添加一个函数
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { }
自动生成的表达式
转到定义,可以查看Load事件的定义
相关文章推荐
- C#匿名委托,匿名函数,lambda表达式
- C++11新特性中的匿名函数Lambda表达式的汇编实现分析(二)
- 委托,匿名函数和lambda表达式
- 【转】【UNITY3D 游戏开发之七】C# 中的委托、事件、匿名函数、Lambda 表达式
- C++11:匿名函数(lambda函数/表达式)及其用法
- 静态函数 抽象类 覆盖-重写-重载 委托-事件-匿名函数 密封 Lambda表达式
- 匿名函数之lambda表达式
- 4.6 匿名函数:Lambda表达式
- c++11标准:匿名函数(匿名表达式)lambda
- 匿名函数 & Lambda 表达式
- [C#学习教程-委托]001.大道至简之委托(代理),匿名函数,Lambda表达式
- 匿名函数、委托 、Lambda表达式
- 委托、匿名函数、lambda表达式
- C++11新特性中的匿名函数Lambda表达式的汇编实现分析(一)
- C#匿名委托与Lambda表达式详解
- 匿名函数:Lambda表达式和匿名方法
- C++11新特性中的匿名函数Lambda表达式的汇编实现分析
- 【转】【UNITY3D 游戏开发之七】C# 中的委托、事件、匿名函数、Lambda 表达式
- [深入学习C#]匿名函数、委托和Lambda表达式
- Kotlin编程之高阶函数,Lambda表达式,匿名函数