【发布时间】:2010-07-23 09:54:31
【问题描述】:
根据我的阅读,我不确定事件和处理程序的命名约定是否正确。 (那里似乎有一些相互矛盾的建议)。
在下面的两个类中,谁能告诉我我是否拥有事件的命名权、引发事件的方法和处理事件的方法?
public class Car
{
// is event named correctly?
public event EventHandler<EventArgs> OnSomethingHasHappened;
private void MoveForward()
{
RaiseSomethingHasHappened();
}
// is the named correctly
private void RaiseSomethingHasHappened()
{
if(OnSomethingHasHappened != null)
{
OnSomethingHasHappened(this, new EventArgs());
}
}
}
和订阅者类别:
public class Subscriber()
{
public Subscriber()
{
Car car = new Car();
car.OnSomethingHasHappened += Car_SomethingHasHappened();
}
// is this named correctly?
private void Car_SomethingHasHappened(object sender, EventArgs e)
{
// do stuff
}
}
提前致谢!
【问题讨论】:
-
我投票结束这个问题,因为它是关于代码审查而不是可重现的编程问题。
-
@Cᴏʀʏ 这个问题,正如它目前所写的那样,对于Code Review 来说是题外话。诸如“SomethingHappened”之类的占位符使其过于假设,无法查看。
-
@Cᴏʀʏ 2010 年的一个问题在Code Review 甚至是一个网站提案之前就被问到了。超过 60 天 (IIRC) 的问题不能(不应该反正)被迁移。
-
当然是可重现的。 ObjectName_EventName 是 Visual Studio 自动生成的命名约定,但它违反了 Visual Studio 的命名约定,即如果对象的名称不大写,则所有函数都大写。
标签: c# events naming-conventions