Share via


CA1002: ジェネリック リストを公開しません

TypeName

DoNotExposeGenericLists

CheckId

CA1002

カテゴリ

Microsoft.Design

互換性に影響する変更点

あり

原因

外部から参照可能な System.Collections.Generic.List<T> 型のメンバーを含む型が System.Collections.Generic.List<T> 型を返すか、その署名に System.Collections.Generic.List<T> パラメーターが含まれています。

規則の説明

System.Collections.Generic.List<T> は、継承ではなくパフォーマンスを目的としたジェネリック コレクションです。 System.Collections.Generic.List<T> には、継承クラスの動作を変更しやすくする仮想メンバーは含まれていません。 継承を目的としたジェネリック コレクションを次に示します。公開するときは System.Collections.Generic.List<T> ではなく、これを使用してください。

違反の修正方法

この規則違反を修正するには、System.Collections.Generic.List<T> 型から、継承を目的とするジェネリック コレクションの 1 つに変更します。

警告を抑制する状況

この警告が発生したアセンブリを再利用可能なライブラリにすることが意図されていない限り、この規則による警告を抑制しないでください。 たとえば、ジェネリック リストを使用することでパフォーマンス上の利点を得ている、パフォーマンス チューニングされたアプリケーションでは、この警告を抑制しても安全です。

関連規則

CA1005: ジェネリック型でパラメーターを使用しすぎないでください

CA1010: コレクションは、ジェネリック インターフェイスを実装しなければなりません

CA1000: ジェネリック型の静的メンバーを宣言しません

CA1006: ジェネリック型をメンバー シグネチャ内で入れ子にしません

CA1004: ジェネリック メソッドは型パラメーターを指定しなければなりません

CA1003: 汎用イベント ハンドラーのインスタンスを使用します

CA1007: 適切な場所にジェネリックを使用します

参照

参照

ジェネリック (C# プログラミング ガイド)