声明event Action<>和声明之间有什么不同吗event EventHandler<>?
假设实际引发事件的对象无关紧要.
例如:
public event Action<bool, int, Blah> DiagnosticsEvent;
Run Code Online (Sandbox Code Playgroud)
VS
public event EventHandler<DiagnosticsArgs> DiagnosticsEvent;
class DiagnosticsArgs : EventArgs
{
public DiagnosticsArgs(bool b, int i, Blah bl)
{...}
...
}
Run Code Online (Sandbox Code Playgroud)
两种情况下的使用情况几乎相同:
obj.DiagnosticsEvent += HandleDiagnosticsEvent;
Run Code Online (Sandbox Code Playgroud)
关于event EventHandler<>模式,有几件我不喜欢的事情:
更多代码意味着维护更多代码而没有任何明显的优势.
结果,我更喜欢 event Action<>
但是,只有在Action <>中有太多类型参数时,才需要额外的类.
c# ×1