CA1058:类型不应扩展某些基类型
类型名 |
TypesShouldNotExtendCertainBaseTypes |
CheckId |
CA1058 |
类别 |
Microsoft.Design |
是否重大更改 |
是 |
原因
外部可见的类型扩展某些基类型。 目前,此规则报告从下列类型派生的类型:
规则说明
对于 .NET Framework 版本 1,建议从 ApplicationException 派生新异常。 此建议已更改,新异常应当从 System.Exception 或者 System 命名空间中它的某个子类派生。
如果您希望创建基础对象模型或数据源的 XML 视图,则不要创建 XmlDocument 的子类。
非泛型集合
请尽可能使用和/或扩展泛型集合。 不要在代码中扩展非泛型集合,除非以前就已发布。
不正确用法示例
public class MyCollection : CollectionBase
{
}
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}
正确用法示例
public class MyCollection : Collection<T>
{
}
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}
如何解决冲突
若要修复与该规则的冲突,请从一个不同的基类型或泛型集合派生该类型。
何时禁止显示警告
对于与 ApplicationException 有关的冲突,不要禁止显示该规则发出的警告。 对于与 XmlDocument 有关的冲突,可以安全地禁止显示与该规则有关的警告。 如果代码是以前发布的,可以安全地禁止显示有关非泛型集合的警告。