CA1058:类型不应扩展某些基类型

类型名

TypesShouldNotExtendCertainBaseTypes

CheckId

CA1058

类别

Microsoft.Design

是否重大更改

原因

外部可见的类型扩展某些基类型。目前,此规则报告从下列类型派生的类型:

规则说明

对于 .NET Framework 版本 1,建议从 ApplicationException 派生新异常。此建议已更改,新异常应当从 Exception 或者 System 命名空间中它的某个子类派生。

如果您希望创建基础对象模型或数据源的 XML 视图,则不要创建 XmlDocument 的子类。

非泛型集合

请尽可能使用和/或扩展泛型集合。不要在代码中扩展非泛型集合,除非以前就已发布。

不正确用法示例

public class MyCollection : CollectionBase
{
}
 
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}

正确用法示例

public class MyCollection : Collection<T>
{
}
 
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}

如何解决冲突

若要修复与该规则的冲突,请从一个不同的基类型或泛型集合派生该类型。

何时禁止显示警告

对于与 ApplicationException 有关的冲突,不要禁止显示该规则发出的警告。对于与 XmlDocument 有关的冲突,可以安全地禁止显示与该规则有关的警告。如果代码是以前发布的,可以安全地禁止显示有关非泛型集合的警告。