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

看板C_Sharp (C#)作者 (阿直直)時間9年前 (2016/04/02 22:02), 9年前編輯推噓1(109)
留言10則, 6人參與, 最新討論串1/1
小弟最近學寫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://www.ptt.cc/bbs/C_Sharp/M.1459605724.A.0D5.html

04/02 22:20, , 1F
最簡單的方式就事件可以這樣加 做不同的工作
04/02 22:20, 1F

04/02 22:21, , 2F
相對的也可以減 不想做某個工作了
04/02 22:21, 2F
哈哈可以再講深一點沒關係 ※ 編輯: pipited07 (140.116.71.78), 04/03/2016 00:50:09

04/03 00:50, , 3F
A+=B 代表A=A+B 你把A跟B都想像成事件就好了
04/03 00:50, 3F
那另外一種寫法還要用NEW的能解釋一下嗎?

04/03 01:26, , 4F
要深一點請去看Observer pattern
04/03 01:26, 4F

04/03 08:19, , 5F
委派?
04/03 08:19, 5F
※ 編輯: pipited07 (140.116.71.78), 04/03/2016 13:48:35

04/03 14:39, , 6F
有沒有 new System.EventHandler 在事件註冊這邊是一模一
04/03 14:39, 6F

04/03 14:41, , 7F
樣的,那只是C#2.0的一個語法糖,編譯後是一模一樣的東西
04/03 14:41, 7F

04/03 16:40, , 8F
所以原PO想問的是為什麼同樣東西有不同寫法嗎?
04/03 16:40, 8F

04/03 21:08, , 9F
你可以想成事件裡面其實是存一個handler list
04/03 21:08, 9F

04/03 21:08, , 10F
+就是add -就是remove
04/03 21:08, 10F
謝謝各位的回覆 我現在有比較懂了 ※ 編輯: pipited07 (140.116.71.78), 04/04/2016 13:33:55 ※ 編輯: pipited07 (140.116.71.78), 04/04/2016 13:35:38
文章代碼(AID): #1M_z3S3L (C_Sharp)
文章代碼(AID): #1M_z3S3L (C_Sharp)