欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > windows C#-嵌套类型

windows C#-嵌套类型

2025/1/3 23:52:31 来源:https://blog.csdn.net/m0_72813396/article/details/144572247  浏览:    关键词:windows C#-嵌套类型

在类、构造或接口中定义的类型称为嵌套类型。 例如

public class Container
{class Nested{Nested() { }}
}

不论外部类型是类、接口还是构造,嵌套类型均默认为 private;仅可从其包含类型中进行访问。 在上一个示例中,Nested 类无法访问外部类型。

还可指定访问修饰符来定义嵌套类型的可访问性,如下所示:

1. “类”的嵌套类型可以是 public、protected、internal、protected internal、private 或 private protected。

但是,在密封类中定义 protected、protected internal 或 private protected 嵌套类将产生编译器警告 CS0628“封闭类汇中声明了新的受保护成员”。

另请注意,使嵌套类型在外部可见违反了代码质量规则 CA1034“嵌套类型不应是可见的”。

2. 构造的嵌套类型可以是 public、internal 或 private。

以下示例使 Nested 类为 public:

public class Container
{public class Nested{Nested() { }}
}

嵌套类型(或内部类型)可访问包含类型(或外部类型)。 若要访问包含类型,请将其作为参数传递给嵌套类型的构造函数。 例如:

public class Container
{public class Nested{private Container? parent;public Nested(){}public Nested(Container parent){this.parent = parent;}}
}

嵌套类型可以访问其包含类型可以访问的所有成员。 它可以访问包含类型的私有成员和受保护成员(包括所有继承的受保护成员)。

在前面的声明中,类 Nested 的完整名称为 Container.Nested。 这是用来创建嵌套类新实例的名称,如下所示:

Container.Nested nest = new Container.Nested();

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com