Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
CA1058: Types should not extend certain base types
Collapse the table of content
Expand the table of content

CA1058: Types should not extend certain base types

TypeName

TypesShouldNotExtendCertainBaseTypes

CheckId

CA1058

Category

Microsoft.Design

Breaking Change

Breaking

An externally visible type extends certain base types. Currently, this rule reports types that derive from the following types:

For .NET Framework version 1, it was recommended to derive new exceptions from ApplicationException. The recommendation has changed and new exceptions should derive from Exception or one of its subclasses in the System namespace.

Do not create a subclass of XmlDocument if you want to create an XML view of an underlying object model or data source.

Use and/or extend generic collections whenever possible. Do not extend non-generic collections in your code, unless you shipped it previously.

Examples of Incorrect Usage

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

Examples of Correct Usage

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

To fix a violation of this rule, derive the type from a different base type or a generic collection.

Do not suppress a warning from this rule for violations about ApplicationException. It is safe to suppress a warning from this rule for violations about XmlDocument. It is safe to suppress a warning about a non-generic collection if the code was released previously.

Show:
© 2015 Microsoft