CA1058:型別不應該擴充特定的基底型別
型別名稱 |
TypesShouldNotExtendCertainBaseTypes |
CheckId |
CA1058 |
分類 |
Microsoft.Design |
中斷變更 |
中斷 |
原因
外部可見的型別會延伸某些基底型別 (Base Type)。 這項規則目前會報告衍生自下列型別的型別:
規則描述
若是 .NET Framework 1 版,建議從 ApplicationException 衍生新的例外狀況。 建議已變更,而新的例外狀況應該衍生自 System.Exception 或在 System 命名空間中的其中一個子類別 (Subclass)。
如果您想建立基礎物件模型或資料來源的 XML 檢視,請勿建立 XmlDocument 的子類別。
非泛型集合
請盡量使用和 (或) 擴充泛型集合。 除非過去曾經發行過,否則請勿在程式碼中擴充非泛型集合。
不正確使用的範例
public class MyCollection : CollectionBase
{
}
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}
正確使用的範例
public class MyCollection : Collection<T>
{
}
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}
如何修正違規
若要修正這項規則的違規情形,請從其他基底型別或泛型集合來衍生型別。
隱藏警告的時機
對於 ApplicationException 的違規情形,請勿隱藏此規則的警告。 對於 XmlDocument 的相關違規情形,請放心地隱藏此規則的警告。 如果事先已經發行過程式碼,則可以放心地隱藏關於非泛型集合的警告。