在创建事件时,C# 中的常见做法是按如下方式定义它,取自.NET Framework 指南中的示例:
public class CustomEventArgs : EventArgs
{
public CustomEventArgs(string s)
{
msg = s;
}
private string msg;
public string Message
{
get { return msg; }
}
}
...
public delegate void CustomEventHandler(object sender, CustomEventArgs a);
通常,我创建根本不需要任何参数的事件。我通常只使用Action
事件处理程序类型来实现这一点。
public event Action LogonScreenExited;
我想知道是否有任何理由要遵循“传统”模式。也许这样的事件表明存在设计缺陷?然而,我使用的理由Action
是YAGNI,为什么在不使用时实现某些东西(甚至显示意图)?