デザイン上の警告


Visual Studio Team System
ジェネリック リストを公開しません

更新 : 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.Generic..::.List<(Of <(T>)>) 型から、継承を目的とするジェネリック コレクションの 1 つに変更します。

警告を抑制する状況

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

関連規則

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

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

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

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

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

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

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

参照

参照

タグ :


Community Content

biac
List を公開しないほうが良い理由
Code Analysis Team Blog で詳しく説明されています。

http://blogs.msdn.com/fxcop/archive/2006/04/27/585476.aspx
> FAQ: Why does DoNotExposeGenericLists recommend that I expose Collection<T> instead of List<T>
タグ :

Page view tracker