共用方式為


CA1002:不要公開泛型清單

型別名稱

DoNotExposeGenericLists

CheckId

CA1002

分類

Microsoft.Design

中斷變更

中斷

原因

型別包含 System.Collections.Generic.List<T> 型別的外部可見成員、傳回 System.Collections.Generic.List<T> 型別,或其簽章 (Signature) 包含 System.Collections.Generic.List<T> 參數。

規則描述

System.Collections.Generic.List<T> 是針對效能而非繼承設計的泛型集合。 System.Collections.Generic.List<T> 不包含虛擬成員,讓它更容易變更繼承的類別的行為。 下列的泛型集合是專為繼承所設計,且應該加以公開 (Expose),以代替 System.Collections.Generic.List<T>

如何修正違規

若要修正此規則的違規情形,請將 System.Collections.Generic.List<T> 型別變更成專為繼承設計的其中一個泛型集合。

隱藏警告的時機

除非不想將引發這則警告的組件 (Assembly) 當做可重複使用的程式庫,否則請勿隱藏此規則的警告。 例如,在已微調效能的應用程式中,因為使用了泛型清單而使得效能提升,所以您可以放心地隱藏這則警告。

相關規則

CA1005:避免在泛型型別上包含過多參數

CA1010:集合應該實作泛型介面

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

CA1006:不要在成員簽章中巢狀化泛型型別

CA1004:泛型方法應該提供型別參數

CA1003:必須使用一般事件處理常式執行個體

CA1007:建議在適當時使用泛型

請參閱

參考

泛型 (C# 程式設計手冊)