我想知道为什么 EventArgs
构造函数不 protected ,因为为每个事件为空对象分配资源似乎是一种浪费(尽管很小),尤其是当存在单例时 EventArgs.Empty
这显然使用起来更有效率。这让我感到惊讶,尤其是当 .NET 的其他部分确实有一个 protected /私有(private)的构造函数来避免多次不必要的分配时,例如Comparer<T>
.
是否存在创建 new EventArgs()
的情况? (不是子类)实际上是有意义的,还是构造函数仅可用于简化没有经验的开发人员的使用?
最佳答案
我会说这是因为 EventArgs
类的 ComVisible
属性设置为 true
。
这得到了以下 FxCop rule 的支持:
A reference type that is specifically marked as visible to COM contains a public parameterized constructor but does not contain a public default (parameterless) constructor.
关于c# - 为什么 EventArgs 构造函数不 protected ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6149947/