我理解将EventHandler / EventArgs模式用于事件的优点,但它会增加很多开销。
public class FooBarEventArgs : EventArgs
{
public int Arg1 { get; set; }
public string Arg2 { get; set; }
}
public event EventHandler<FooBarEventArgs> FooBar;
你会破坏内部事件的事件模式吗?
internal event Action<int, string> FooBar;
或者直接公开代表会更好吗?
internal Action<int, string> FooBar;
答案 0 :(得分:4)
我认为坚持共同模式始终是最佳选择。即使它引入了开销,将来也会更容易理解和维护代码。你永远不知道谁将最终维护你的代码,你不会使用这样的“快捷方式”来帮助他/她。
答案 1 :(得分:2)
考虑到它并不是那么多开销。另请注意,属性名称将为调用者提供额外信息,这是使用Action委托时没有的内容。
答案 2 :(得分:1)
这取决于很多事情。
正如你所看到的,没有一个明确的正确答案;这取决于你的意图,以及它们如何适应整个应用程序。
答案 3 :(得分:1)
我相信不遵循常规活动&amp;事件处理模式(使用EventHandler / EventHandler)将抛出FxCop / StyleCop违规。如果静态代码分析,可读性和代码质量对您/您的项目很重要,那么您应该坚持使用常规事件模式。