CA1058: 型は、一定の基本型を拡張することはできません
TypeName |
TypesShouldNotExtendCertainBaseTypes |
CheckId |
CA1058 |
カテゴリ |
Microsoft.Design |
互換性に影響する変更点 |
あり |
原因
外部から参照可能な型では、特定の基本型が拡張されます。 現在、この規則では次の型から派生した型が報告されます。
規則の説明
.NET Framework Version 1 では、ApplicationException から新しい例外を派生することが推奨されていました。 この推奨事項は変更されました。新しい例外は、System.Exception または System 名前空間のサブクラスの 1 つから派生する必要があります。
基となるオブジェクト モデルまたはデータ ソースの XML ビューを作成する場合、XmlDocument のサブクラスを作成しないでください。
非ジェネリック コレクション
可能な限りジェネリック コレクションを使用または拡張するようにします。 以前に提供済みである場合を除き、コード内で非ジェネリック コレクションを拡張しないでください。
間違った使用例
public class MyCollection : CollectionBase
{
}
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}
正しい使用例
public class MyCollection : Collection<T>
{
}
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}
違反の修正方法
この規則違反を修正するには、別の基本型またはジェネリック コレクションから型を派生します。
警告を抑制する状況
ApplicationException に関する違反については、この規則による警告を抑制しないでください。 XmlDocument に関する違反については、この規則による警告を抑制しても安全です。 以前にコードをリリース済みである場合は、非ジェネリック コレクションに関する警告を抑制しても安全です。