前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CA1034:嵌套类型不应是可见的

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

作者头像
用户4268038
发布2022-01-10 09:37:59
2950
发布2022-01-10 09:37:59
举报
文章被收录于专栏:stcnb

“值”

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

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档