ReSharper约定事件处理程序的名称

时间:2010-06-08 04:38:02

标签: c# resharper

当我为任何事件添加新事件处理程序时,VS会创建类似object_Click的方法。 但ReSharper将此方法强制为警告,因为所有方法都不应具有任何分隔符,例如“_”。

如何自定义ReSharper规则,以便不强调此类方法?或者我应该重命名这样的方法?

提前致谢。

4 个答案:

答案 0 :(得分:112)

对于C#(或VB),请进行以下更改:

ReSharper |选项|语言| C#| C#命名样式,高级设置...... 将“字段上的活动订阅”从$object$_On$event$更改为$object$_$event$

您可能还希望向“类型和命名空间”等实体类添加其他规则,以便考虑代码生成的类,例如“ Default”。例如,添加一个带有“”名称前缀和名称样式“UpperCamelCase”的新规则。

答案 1 :(得分:31)

就个人而言,我建议重命名这些方法。一般来说,我认为VS为控件和事件提供了可怕的名字。

我更喜欢让方法名称说明做什么,而不是什么叫它。这也促进了重用。不可否认,事件处理程序的签名通常不适合重用 - 我认为通常调用具有更合理参数的方法的lambda表达式会很有用:

button.Click += (sender, args) => SaveCurrentDocument();

但显然设计师不支持:(

当然,重命名所有方法比仅更改R#设置更有用,如果你能找到一些有用的......

答案 2 :(得分:6)

我刚刚为Visual Studio 2010创建了一个扩展,即EventHandler Naming,它允许您使用简单模式指定您希望生成的事件处理程序名称。扩展中的默认模式是On $(SiteName)$(EventName),它将为您提供OnBtnNameClick等事件名称,而不是btnName_Click。您可以在http://tech.einaregilsson.com/2010/12/22/better-eventhandler-names-in-visual-studio-2010/

获取扩展程序

答案 3 :(得分:0)

在您的文件菜单上,您应该有“Resharper”点击它 - >选项 - >命名约定(左侧菜单)。

从那里,您可以指定每种命名类型/样式使用的命名约定。