【发布时间】:2013-03-11 12:05:48
【问题描述】:
我有一个声明事件的接口
interface IMyInterface
{
event SomeHandler MyEvent1;
event SomeHandler MyEvent2;
...
}
但是当我启用代码分析规则CA1040:避免空接口时,它抱怨我的接口违反了这个规则,有什么解决办法吗?
【问题讨论】:
-
只是抑制警告?这显然是虚假的。
-
我更喜欢仅在有真正原因时才禁止,在这种情况下,原因是规则无法正常工作
-
奇怪,如果它认为接口是空的。
event声明是实现类/结构必须具有 enevent的要求,该类型 (SomeHandler) 包含add和remove访问器。如果实现者选择使用“类字段事件”,则这两个访问器可以是“隐式”的。它是否仅适用于索引器,即IMyInterface的唯一成员是string this[int idx] { get; }? -
这是 BCL 中的一个接口,它只包含一个事件(当然还有
add和remove访问器):INotifyCollectionChangedInterface -
我无法使用上面的代码在 VS 2010 中重现,即使在公开接口之后(通常这是触发 CA1040 所必需的)。您能否提供一个实际导致 CA1040 违规的完整示例(包括 SomeHandler 的定义)?
标签: c# visual-studio code-analysis fxcop