Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何命名引发事件的方法_C#_Naming Conventions - Fatal编程技术网

C# 如何命名引发事件的方法

C# 如何命名引发事件的方法,c#,naming-conventions,C#,Naming Conventions,我有一个方法(Read),在有新日志时引发事件: public class LoggerModel: ILoggerModel { public event System.EventHandler LogsChanged; ... public void Read() { if (ThereAreNewLogs()) { OnLogsChanged(System.EventArgs.Empty); } } } 但我觉得“Read()”没有表现

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

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

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

我称之为
CheckIfLogChanged()
是的,它让人困惑。。。我会叫它Listen()或类似的东西。。也许令人吃惊

此外,您还必须检查是否有人已注册参加OnLogsChanged活动

打电话

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

这是一个品味的问题,我个人使用的是
TriggerEvent
,其中“event”当然是事件的名称。它也是检查事件是否为null的好地方。但在我的例子中,它是一个私有方法,而您的
读取
方法是公共的,如果引发事件需要“手动”调用某个提醒方法,那么它与基于事件的通信imho的理念是不一致的。

该方法的真正范围是验证并处理日志中的新条目

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

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