作者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/cn.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