拥有这条线:
this.button1.Click += this.button2.Click += (s, e) => MessageBox.Show("Test");
为什么这条线不起作用
无法隐式转换
void为System.EventHandler
我们需要再多做一行来做这件事吗?但想象一下,如果我们有20个按钮
this.button1.Click += this.button(n).Click += MessageBox.Show("Test");
我知道你会说什么:
您可以为每个按钮执行for(each)和...
但如果我需要选择我想要的按钮呢?
那么,为什么第一行代码不起作用,并存在这样的事情(以不同的方式写)
是的,您需要单独向每个事件添加事件处理程序,并且错误消息正在告诉您确切原因.在C#中,this.button2.Click += (s, e) => MessageBox.Show("Test");不返回lambda值,因此没有任何内容可以添加到button1.Click事件中.
它也只是简单的坏风格.我必须两次阅读第一行才能意识到你在哪里尝试.你永远不应该牺牲清晰度来支持简洁.
| 归档时间: | 
 | 
| 查看次数: | 702 次 | 
| 最近记录: |