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事件的定義