CA1005: ジェネリック型でパラメーターを使用しすぎないでください
TypeName |
AvoidExcessiveParametersOnGenericTypes |
CheckId |
CA1005 |
[カテゴリ] |
Microsoft.Design |
互換性に影響する変更点 |
あり |
原因
外部から参照可能なジェネリック型に、3 つ以上の型パラメーターがあります。
規則の説明
ジェネリック型に含まれる型パラメーターが増えれば増えるほど、それぞれの型パラメーターが表す意味を調べることや覚えることが難しくなります。通常、List<T> のように型パラメーターが 1 つの場合や、Dictionary<TKey, TValue> のように型パラメーターが 2 つの場合、意味は明確です。型パラメーターが 3 つ以上になると、ほとんどのユーザーには意味を把握することが困難になります (たとえば、C# では TooManyTypeParameters<T, K, V>、Visual Basic では TooManyTypeParameters(Of T, K, V) のような場合)。
違反の修正方法
この規則違反を修正するには、3 つ以上の型パラメーターを使用しないようにデザインを変更します。
警告を抑制する状況
デザインで 3 つ以上の型パラメーターが絶対に必要な場合を除き、この規則による警告を抑制しないでください。理解しやすく使いやすい構文でジェネリック型を指定することで、習得に必要な時間が短縮され、新しいライブラリの採用率が向上します。
関連規則
CA1010: コレクションは、ジェネリック インターフェイスを実装しなければなりません
CA1006: ジェネリック型をメンバー シグネチャ内で入れ子にしません
CA1004: ジェネリック メソッドは型パラメーターを指定しなければなりません
CA1003: 汎用イベント ハンドラーのインスタンスを使用します