CA1034:嵌套类型不应是可见的

2022-01-10 09:37:59 浏览数 (1)

“值”

RuleId

CA1034

类别

设计

修复是中断修复还是非中断修复

重大

原因

外部可见类型包含外部可见类型声明。 嵌套列举、受保护类型和生成器模式不受此规则的限制。

规则说明

嵌套类型是在另一个类型的范围中声明的类型。 嵌套类型用于封装包含类型的私有实现详细信息。 如果用于此用途,则嵌套类型不应是外部可见的。

不要使用外部可见嵌套类型进行逻辑分组或避免名称冲突;请改为使用命名空间。

嵌套类型包括成员可访问性的概念,对此一些程序员并不清楚了解。

在高级自定义场景中,受保护的类型可用于子类和嵌套类型。

如何解决冲突

如果不打算让嵌套类型在外部可见,请更改该类型的可访问性。 否则,请从其父级中删除嵌套类型。 如果嵌套的目的是对嵌套类型进行分类,请改为使用命名空间来创建层次结构。

何时禁止显示警告

不禁止显示此规则发出的警告。

示例

下面的示例演示了与规则冲突的类型。

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

0 人点赞