[問題] 共享事件的語法解釋

作者: pipited07 (阿直直)   2016-04-02 22:02:02
小弟最近學寫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);
就能夠共享同一個事件? 還要用"加"的
小弟程式學齡不深,煩請板上大大用最簡單的方式告訴我
作者: testPtt (測試)   2016-04-02 22:20:00
最簡單的方式就事件可以這樣加 做不同的工作相對的也可以減 不想做某個工作了
作者: tp6vul3co (天氣好)   2016-04-03 00:50:00
A+=B 代表A=A+B 你把A跟B都想像成事件就好了
作者: Litfal (Litfal)   2016-04-03 01:26:00
要深一點請去看Observer pattern
作者: don750421 (1+1≠2)   2016-04-03 08:19:00
委派?
作者: Litfal (Litfal)   2016-04-03 14:39:00
有沒有 new System.EventHandler 在事件註冊這邊是一模一樣的,那只是C#2.0的一個語法糖,編譯後是一模一樣的東西
作者: m339606 (mize)   2016-04-03 16:40:00
所以原PO想問的是為什麼同樣東西有不同寫法嗎?
作者: ssccg (23)   2016-04-03 21:08:00
你可以想成事件裡面其實是存一個handler list+就是add -就是remove

Links booklink

Contact Us: admin [ a t ] ucptt.com