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

C#访问修饰符

C#中的访问修饰符用于控制类型成员(如字段、属性、方法等)的访问级别。以下是C#中常用的访问修饰符:

  1. public:公共访问级别,没有任何访问限制。在任何其他类或程序集中都可以访问标记为 public 的成员。

  2. private:私有访问级别,只能在定义它们的类内部访问。这是默认访问级别,如果没有指定访问修饰符,则成员被认为是私有的。

  3. protected:受保护访问级别,允许在定义成员的类内部以及派生自该类的子类中访问。

  4. internal:内部访问级别,只能在相同程序集内部访问。对于程序集外部的代码来说,这些成员是不可见的。

  5. protected internal:受保护的内部访问级别,允许在同一程序集中的任何类或派生自该类的子类中访问。

  6. private protected:私有受保护访问级别,只允许在定义成员的类的同一程序集内的派生类中访问。

下面是包含这些访问修饰符的示例代码:

using System;public class MyClass
{public int PublicField;           // 公共字段private int PrivateField;         // 私有字段protected int ProtectedField;     // 受保护字段internal int InternalField;       // 内部字段protected internal int ProtectedInternalField; // 受保护的内部字段private protected int PrivateProtectedField;   // 私有受保护字段public void MyMethod(){// 这里可以访问所有上述字段}
}public class DerivedClass : MyClass
{public void AnotherMethod(){// 这里可以访问 PublicField, ProtectedField, ProtectedInternalField 和 PrivateProtectedField// 无法访问 PrivateField 和 InternalField(除非这两个类在同一个程序集中)}
}class Program
{static void Main(){MyClass myClass = new MyClass();// 可以访问 myClass.PublicField 和 myClass.InternalField// 无法访问 PrivateField, ProtectedField, ProtectedInternalField 和 PrivateProtectedField}
}

在这个示例中,MyClass 类中包含了各种访问修饰符的字段,以及一个公共方法 MyMethodDerivedClass 类继承自 MyClass,它可以访问部分但不是全部的字段。Program 类的 Main 方法展示了从类外部可以访问哪些字段。

http://www.lryc.cn/news/235525.html

相关文章:

  • anaconda中安装pytorch和TensorFlow环境并在不同环境中安装kernel
  • 记一次解决Pyqt6/Pyside6添加QTreeView或QTreeWidget导致窗口卡死(未响应)的新路历程,打死我都想不到是这个原因
  • 用照片预测人的年龄【图像回归】
  • Fork项目新分支如何同步
  • Linux 常用压缩格式
  • 高效背单词——单词APP安利
  • 力扣 字母异位词分组 哈表 集合
  • ⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
  • 使用SpringBoot进行游戏服务器开发
  • 数据结构——树状数组
  • Untiy 使用RotateAround()方法实现物体围绕某个点或者某个物体旋转
  • 图像分类(五) 全面解读复现ResNet
  • 使用html2canvas转换table为图片时合并单元格rowspan失效,无边框显示问题解决(React实现)
  • pandas教程:Time Series Basics 时间序列基础
  • 【C++初阶】STL详解(四)vector的模拟实现
  • Zookeeper学习笔记(2)—— Zookeeper API简单操作
  • YOLOv8-Seg改进:Backbone改进 |Next-ViT堆栈NCB和NTB 构建先进的CNN-Transformer混合架构
  • DocCMS keyword SQL注入漏洞复现 [附POC]
  • 利用(Transfer Learning)迁移学习在IMDB数据上训练一个文本分类模型
  • pom.xml格式化快捷键
  • 【短文】【踩坑】可以在Qt Designer给QTableWidge添加右键菜单吗?
  • Git常用配置
  • 力扣每日一题-数位和相等数对的最大和-2023.11.18
  • 【win32_001】win32命名规、缩写、窗口
  • 机器学习第8天:SVM分类
  • AI工具合集
  • 代码随想录算法训练营Day 54 || 392.判断子序列、115.不同的子序列
  • C 语言 gets()和puts()
  • 核—幂零分解
  • 轻松掌控财务,分析账户花销,明细记录支出情况