作者pipited07 (阿直直)
看板C_Sharp
標題[問題] 共享事件的語法解釋
時間Sat Apr 2 22:02:02 2016
小弟最近學寫c#,如果問題太過粗淺請多包涵
當我寫一堆button要共享某一個button時,form1內部會這樣寫
public Form1()
{
InitializeComponent();
button1.Click += new System.EventHandler(button1_Click);
button2.Click += new System.EventHandler(button1_Click);
button3.Click += new System.EventHandler(button1_Click);
}
或寫成
botton2.Click += botton1_Click;這樣也可以
但是這兩句話在邏輯上我完全不懂
為何button1.Click=button1.Click+ new System.EventHandler(button1_Click);
就能夠共享同一個事件? 還要用"加"的
小弟程式學齡不深,煩請板上大大用最簡單的方式告訴我
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.71.78
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1459605724.A.0D5.html
1F:→ testPtt: 最簡單的方式就事件可以這樣加 做不同的工作 04/02 22:20
2F:→ testPtt: 相對的也可以減 不想做某個工作了 04/02 22:21
哈哈可以再講深一點沒關係
※ 編輯: pipited07 (140.116.71.78), 04/03/2016 00:50:09
3F:→ tp6vul3co: A+=B 代表A=A+B 你把A跟B都想像成事件就好了 04/03 00:50
那另外一種寫法還要用NEW的能解釋一下嗎?
4F:→ Litfal: 要深一點請去看Observer pattern 04/03 01:26
5F:推 don750421: 委派? 04/03 08:19
※ 編輯: pipited07 (140.116.71.78), 04/03/2016 13:48:35
6F:→ Litfal: 有沒有 new System.EventHandler 在事件註冊這邊是一模一 04/03 14:39
7F:→ Litfal: 樣的,那只是C#2.0的一個語法糖,編譯後是一模一樣的東西 04/03 14:41
8F:→ m339606: 所以原PO想問的是為什麼同樣東西有不同寫法嗎? 04/03 16:40
9F:→ ssccg: 你可以想成事件裡面其實是存一個handler list 04/03 21:08
10F:→ ssccg: +就是add -就是remove 04/03 21:08
謝謝各位的回覆 我現在有比較懂了
※ 編輯: pipited07 (140.116.71.78), 04/04/2016 13:33:55
※ 編輯: pipited07 (140.116.71.78), 04/04/2016 13:35:38