一、類型、變量、實例之間的關系。
類型》變量》實例
類型可以創建變量,實體類可以創建實例,實例可以存儲在變量里。
二、委托使用過程:
1.定義委托(寫好簽名);
2.創建委托變量;
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表達式給這個委托變量賦值,好比給這把槍安裝槍膛、扳機等內部構造的過程,這時槍可以工作了。
四、Winform窗體中的事件

Winform窗體事件:用預先定義好的委托(EventHandle)的定義的變量(接收兩個參數)。
窗體里自帶一個委托變量;我們做的就是給這個變量追加函數。
1.
給窗體Load事件添加一個函數
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
自動生成的表達式
轉到定義,可以查看Load事件的定義




