27

当您在代码中订阅事件时,Visual Studio 会自动完成代码+=并生成相应的事件处理程序:

button.Click += new EventHandler(button_Click);
//              ↑_____auto generated code_____↑

请注意它是如何显式创建委托实例的:尽管自 C# 2 以来方法组可以隐式转换为委托,但 VS2010 中的 IDE 行为仍然没有改变。

所以我想知道,有没有办法生成这样的代码?

button.Click += button_Click;

编辑
只是为了让每个人都清楚:上面的代码不在设计器文件中(如果是这种情况,我不在乎使用哪种语法)。+=这是当您在事件名称后键入并按下时触发的片段TAB


EDIT2
我将此作为关于 Connect 的建议进行了报告,如果您还希望更改当前行为,则可以投票

4

3 回答 3

2

Connect的建议已被标记为已修复,因此新行为应包含在 VS11 的下一个公共构建中。

编辑:刚刚检查过,它确实包含在测试版中。

于 2011-11-10T23:14:50.873 回答
1

感谢您澄清您的问题。遗憾的是,无法配置或自定义由 C# 语言服务生成的事件连接代码。更糟糕的是,Generate Method Stub 功能在事件连接上也不起作用——尽管它应该起作用,而且这已经在 Visual Studio 的下一个版本中得到修复。

抱歉,没有比这个特定功能更好的故事了。:-(

于 2010-12-17T22:29:59.633 回答
0

几年以来,我一直在为 Visual Studio 使用这个扩展。

于 2015-11-20T16:38:29.567 回答