CA1034:巢狀類型不應該為可見的
屬性 | 值 |
---|---|
規則識別碼 | CA1034 |
標題 | 巢狀類型不應該為可見的 |
類別 | 設計 |
修正程式是中斷或非中斷 | 中斷 |
預設在 .NET 8 中啟用 | No |
原因
外部可見型別包含外部可見型別宣告。 巢狀列舉、受保護的類型和產生器模式會豁免此規則。
檔案描述
巢狀類型是在另一種類型範圍內宣告的類型。 巢狀類型適用於封裝包含型別的私人實作詳細數據。 因為有這樣的用途,所以巢狀類型不應為外部可見的。
請勿將外部可見的巢狀類型用於邏輯群組,或避免名稱衝突;請改用命名空間。
巢狀類型包含成員輔助功能的概念,有些程式設計人員無法清楚了解這些概念。
在預先自定義案例中,受保護的類型可用於子類別和巢狀類型。
如何修正違規
如果您不想讓巢狀類型在外部可見,請變更類型的輔助功能。 否則,請從其父代中移除巢狀類型。 如果巢狀的目的是將巢狀類型分類,請改用命名空間來建立階層。
隱藏警告的時機
請勿隱藏此規則的警告。
範例
下列範例顯示違反規則的型別。
public class ParentType
{
public class NestedType
{
public NestedType()
{
}
}
public ParentType()
{
NestedType nt = new NestedType();
}
}
Imports System
Namespace ca1034
Class ParentType
Public Class NestedType
Sub New()
End Sub
End Class
Sub New()
End Sub
End Class
End Namespace