1、类型、变量、实例之间的关系。
类型》变量》实例
类型能够建立变量,实体类能够建立实例,实例能够存储在变量里。
2、委托使用过程:
1.定义委托(写好签名);
2.建立委托变量;
3.给委托变量里追加引用函数(相同的签名)。函数
3、lambda表达式的由来
private void button1_Click(object sender, EventArgs e) { //匿名委托 Func<int, int> del //类型》变量》实例 //Func是一个匿名委托类型,是一个没有名字的类型 //怎样肯定它的签名:须要若干数据类型做为参数(前面的规定参数类型,最后一个规定返回值类型) //能够直接定义一个委托变量 //匿名函数 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表达式给这个委托变量赋值,比如给这把枪安装枪膛、扳机等内部构造的过程,这时枪能够工做了。
4、Winform窗体中的事件spa
Winform窗体事件:用预先定义好的委托(EventHandle)的定义的变量(接收两个参数)。
窗体里自带一个委托变量;咱们作的就是给这个变量追加函数。设计
1.code
给窗体Load事件添加一个函数orm
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { }
自动生成的表达式
转到定义,能够查看Load事件的定义