共用方式為


CA1000:不要在泛型類型上宣告靜態成員

型別名稱

DoNotDeclareStaticMembersOnGenericTypes

CheckId

CA1000

分類

Microsoft.Design

中斷變更

中斷

原因

外部可見的泛型型別包含 static (在 Visual Basic 中為 Shared) 成員。

規則描述

呼叫泛型型別的 static 成員時,必須為型別指定型別引數。呼叫不支援介面的泛型執行個體 (Instance) 成員時,必須為成員指定型別引數。在上述兩種情況下指定型別引數的語法不同且容易混淆,如下列呼叫所示範:

' 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# 程式設計手冊)