当您在代码中订阅事件时,Visual Studio会在+=
之后自动完成代码并生成相应的事件处理程序:
button.Click += new EventHandler(button_Click);
// ↑_____auto generated code_____↑
注意它是如何显式创建委托实例的:即使方法组可以自C#2隐式转换为委托,但在VS2010中IDE行为仍然没有改变。
所以我想知道,有没有办法生成这样的代码呢?
button.Click += button_Click;
EDIT
只是为了让每个人都清楚:上面的代码在设计器文件中是而不是(如果是这种情况,我不会关心使用哪种语法)。这是在事件名称后键入+=
并按 TAB
EDIT2
我将此报告为suggestion on Connect,如果您还希望更改当前行为,则可以对其进行投票
答案 0 :(得分:2)
suggestion on Connect已标记为已修复,因此新行为应包含在VS11的下一个公共版本中。
编辑:刚刚检查过,它确实包含在测试版中。
答案 1 :(得分:1)
感谢您澄清您的问题。遗憾的是,没有办法配置或自定义由C#语言服务生成的事件连接代码。更糟糕的是,Generate Method Stub功能对事件连接也不起作用 - 虽然它应该,并且已经为Visual Studio的下一个版本修复了。
很抱歉,此特定功能没有更好的故事。 : - (
答案 2 :(得分:0)
我在Visual Studio中使用this扩展了几年。