当前位置: 首页 > article >正文

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();

http://www.kler.cn/a/456991.html

相关文章:

  • python常用库之数据验证库pydantic
  • 018-spring-基于aop的事务控制
  • android app构建时排除指定类
  • Microsoft word@【标题样式】应用不生效(主要表现为在导航窗格不显示)
  • springboot506基于Springboot的小区疫情购物系统录(论文+源码)_kaic
  • RT-Thread中堆和栈怎么跟单片机内存相联系
  • 原点安全再次入选信通院 2024 大数据“星河”案例
  • 【Linux学习六】压缩和解压类
  • 安装宝塔面板 安装MySQL 使用DataGrip连接
  • IDEA开发Java应用的初始化设置
  • Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程
  • Android 版本号、代号、API级别对应关系汇总
  • 【Unity Shader】【图形渲染】 Shader数学基础14:裁剪空间
  • 在K8S中,nodePort默认端口范围是多少?为什么是这个端口范围?
  • 【go每日一题】 责任链模式的实现
  • 学习C++:运算符
  • 【PSINS】EKF、UKF、CKF三个滤波下的组合导航(松组合)对比
  • 面向对象的设计原则与设计模式
  • HuggingFace peft LoRA 微调 LLaMA
  • Mysql数据库中,监测某张表中某字段的修改情况(被哪个ip所修改、新老值)
  • InceptionNeXt: When Inception Meets ConvNeXt
  • 不安全物联网的轻量级加密:综述
  • 【最新】宇鹿家政小程序系统v1.1.3高级版源码全开源+搭建环境
  • 太通透了,Android 流程分析 蓝牙enable流程(stack/hidl)
  • 配置vue2项目中组件命名忽略大小写
  • ch.h:38:10:致命错误: rpc/rpc.h:没有那个文件或目录38 I#include <rpc/rpc.h>