[问题] 共享事件的语法解释

楼主: 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