次の方法で共有


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

TypeName

DoNotDeclareStaticMembersOnGenericTypes

CheckId

CA1000

[カテゴリ]

Microsoft.Design

互換性に影響する変更点

あり

原因

外部から参照可能なジェネリック型に、static (Visual Basic では Shared) メンバーが含まれています。

規則の説明

ジェネリック型の static メンバーを呼び出すときには、その型の型引数も指定する必要があります。推論をサポートしないジェネリック インスタンス メンバーを呼び出すときには、そのメンバーに型引数を指定する必要があります。この 2 つの場合で、型引数を指定するときに使用される構文は異なりますが、混同される可能性があります。次に呼び出しの例を示します。

' Shared method in a generic type.
GenericType(Of Integer).SharedMethod()

' Generic instance method that does not support inference.
someObject.GenericMethod(Of Integer)()
// Static method in a generic type.
GenericType<int>.StaticMethod();

// Generic instance method that does not support inference.
someObject.GenericMethod<int>();

一般的に、メンバーが呼び出されたときに型引数を指定する必要がないように、前者の宣言はどちらも避ける必要があります。その結果、ジェネリック型のメンバーを呼び出す構文がジェネリック型以外の構文と同じになります。詳細については、「CA1004: ジェネリック メソッドは型パラメーターを指定しなければなりません」を参照してください。

違反の修正方法

このルールの違反を修正するには、静的メンバーを削除するか、インスタンス メンバーに変更します。

警告を抑制する状況

この規則による警告は抑制しないでください。理解しやすく使いやすい構文でジェネリック型を指定することで、習得に必要な時間が短縮され、新しいライブラリの採用率が向上します。

関連規則

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

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

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

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

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

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

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

参照

関連項目

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