如何命名引发事件的方法

时间:2011-09-28 08:07:48

标签: c# naming-conventions

我有一个方法(Read),当有新日志时会引发一个事件:

public class LoggerModel: ILoggerModel {
  public event System.EventHandler LogsChanged;
  ...
  public void Read() {
     if (ThereAreNewLogs()) {
        OnLogsChanged(System.EventArgs.Empty);
     }
  }
}

但我觉得“Read()”没有表现力......有什么建议吗?

4 个答案:

答案 0 :(得分:1)

我称之为CheckIfLogChanged()

答案 1 :(得分:1)

这是一个品味问题,我个人使用TriggerEvent,其中“event”是事件的名称。它也是检查事件是否为空的好地方。但是在我的情况下它是一种私有方法,而你的Read方法是公开的,如果提出一个事件需要“手动”调用一些提醒方法,那么它与基于事件的通信imho的想法不一致。

答案 2 :(得分:0)

是的,这令人困惑......我会称之为Listen()或类似的东西......也许是StartListening()

此外,您必须检查是否有人注册了OnLogsChanged事件

致电

if(OnLogsChanged != null)
{
  OnLogsChanged(EventArgs.Empty);
}

答案 3 :(得分:0)

该方法的实际范围是验证并处理日志中的新条目。

所以对我来说可能是VerifyNewLogs,或类似的东西。

但最好的解决方案是为其添加文档,您将在其中描述该方法正在执行的操作。这肯定会帮助您或将来的其他人。