更新 : 2007 年 11 月
TypeName
DoNotExposeGenericLists
CheckId
CA1002
カテゴリ
Microsoft.Design
互換性に影響する変更点
あり
外部から参照可能な System.Collections.Generic..::.List<(Of <(T>)>) 型のメンバを含む型が System.Collections.Generic..::.List<(Of <(T>)>) 型を返すか、その署名に System.Collections.Generic..::.List<(Of <(T>)>) パラメータが含まれています。
System.Collections.Generic..::.List<(Of <(T>)>) は継承ではなくパフォーマンスを目的としたジェネリック コレクションであるため、仮想メンバは含まれません。継承を目的としたジェネリック コレクションを次に示します。公開するときは System.Collections.Generic..::.List<(Of <(T>)>) ではなく、これを使用してください。
System.Collections.ObjectModel..::.Collection<(Of <(T>)>)
System.Collections.ObjectModel..::.ReadOnlyCollection<(Of <(T>)>)
System.Collections.ObjectModel..::.KeyedCollection<(Of <(TKey, TItem>)>)
この規則違反を修正するには、System.Collections.Generic..::.List<(Of <(T>)>) 型から、継承を目的とするジェネリック コレクションの 1 つに変更します。
この警告が発生したアセンブリを再利用可能なライブラリにすることが意図されていない限り、この規則による警告を抑制しないでください。たとえば、ジェネリック リストを使用することでパフォーマンス上の利点を得ている、パフォーマンス チューニングされたアプリケーションでは、この警告を抑制しても安全です。
ジェネリック型でパラメータを使用しすぎないでください
コレクションは、ジェネリック インターフェイスを実装しなければなりません
ジェネリック型の静的メンバを宣言しません
ジェネリック型をメンバ シグネチャ内で入れ子にしません
ジェネリック メソッドは型パラメータを指定しなければなりません
汎用イベント ハンドラのインスタンスを使用します
適切な場所にジェネリックを使用します