2010-06-14 113 views
1

事件处理事件命名约定,我开始看到很多程序员这样做:基于XAML的应用程序 - 为C#

XButton.Click += OnXButtonClicked() 
... 
void OnXButtonClicked() 
{ ... } 

哪里这个ON_惯例从何而来?就方法而言,它感觉不对。

我开始认为这是很好,想知道别人怎么想:

XButton.Click += HandleXButtonClick() 
... 
void HandleXButtonClick() 
{ ... } 

当使用智能感知,Visual Studio中处理这些像这样:

XButton.Click += XButton_Click; 
... 
void XButton_Click(object sender, RoutedEventArgs e) 
{ ... } 

我寻求一些建议这些命名约定,并会非常感谢一些建议。

回答

3

因为这些通常都是私有方法,所以名称完全取决于你和你的团队。事件处理程序仅在您的私有API中使用,并且是实现细节,这就是为什么在命名方面没有任何官方指导的原因。

这就是说,我只是选择一些对你和你的团队有意义的东西,并坚持它的一致性。

就我个人而言,我不喜欢“OnXXX”的名字,因为它有点误导。实施活动的建议是使用OnXXX作为引发事件XXX的受保护方法。将此名称用作事件处理程序似乎不合适。

A HandleXXX名称是有意义的,因为这是一个事件订阅,并且该方法正在“处理”事件。 Object_XXX语法的优点是作为Visual Studio中的设计器默认使用的,所以它也是一个不错的选择。这就是说,它经常与私有变量和方法命名方案相冲突(因为它们通常是小写),并且会使像StyleCop这样的工具发生抱怨。

+0

良好的信息!谢谢! – user118190 2010-06-14 19:12:34

0

我推荐使用ObjectName_EventName约定。这很容易阅读,并告诉你到底你需要知道什么,即哪个对象和哪个事件被连接到

0

为了在整个项目中拥有一致的命名方案,我按照Skawalker的方式处理它,因为Intellisense以这种方式进行命名。