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

C#9、默认访问修饰符


✅ 1. 顶层类型(类、结构、接口、枚举、委托)

指直接定义在命名空间下的类型(不是嵌套在其他类里的)

  • 默认是:internal
  • 含义:仅限当前程序集(项目)内可见
示例:
// 没有写 public 或 internal,默认就是 internal
class MyClass
{// ...
}struct MyStruct { }
interface IMyInterface { }
enum MyEnum { A, B }

🔔 注意:如果想让其他项目引用并使用这个类,必须显式加上 public


✅ 2. 类或结构的成员(字段、方法、属性、构造函数等)

指定义在类或结构内部的成员

  • 默认是:private
  • 含义:只能在当前类/结构内部访问
示例:
public class Person
{string name;        // 默认 privatevoid SayHello()     // 默认 private{Console.WriteLine("Hello");}public void PublicMethod(){name = "Alice";     // ✅ 类内部可以访问 private 成员SayHello();         // ✅}
}

💡 这是 C# 强调“封装性”的体现:成员默认对外隐藏,需要时才开放(如用 public)。


✅ 3. 接口成员(C# 8.0 之前 vs 之后)

  • C# 8.0 之前:接口成员不能有访问修饰符,默认都是 public(且不能写 public)。
  • C# 8.0+:支持默认接口方法,此时接口成员默认仍是 public,但可以显式指定为 privateprotected 等(较少用)。
示例(现代 C#):
interface ILogger
{void Log(string msg);           // 隐式 publicpublic void Flush() { }         // 显式 public(C# 8+)private void Helper() { }       // 私有辅助方法(C# 8+)
}

⚠️ 但通常我们只关心:接口成员对外都是公开的


✅ 4. 嵌套类型(定义在类里面的类/结构)

  • 默认是:private
示例:
public class Outer
{class NestedClass   // 默认 private{// 只有 Outer 类内部能访问 NestedClass}
}

📌 快速记忆表

定义位置默认访问修饰符
命名空间下的类、结构、接口、枚举、委托internal
类或结构中的成员(方法、字段、属性等)private
接口中的成员public
嵌套在类中的类型(如内部类)private

💡 初学者建议:

  • 写类时,如果希望被其他项目使用 → 加 public
  • 写成员时,如果希望被外部调用 → 加 public
  • 不确定时,先保持默认(privateinternal),按需提升权限

问题

类的默认访问修饰符是什么?

在命名空间级别,默认访问修饰符是internal,对于嵌套类是private.

http://www.dtcms.com/a/602212.html

相关文章:

  • [AI tradingOS] 前端.ts | config.ts转发到后端
  • 凡客网上购物西安百度seo代理
  • MATLAB实现图像PCA降噪
  • 辽阳专业建设网站公司服务公司理念
  • 安卓进阶——RxJava
  • mobilenet v4 导出onnx onnx推理
  • 网站服务器如何维护网络广告案例
  • 奢侈品网站建设中车网站建设的优缺点
  • C/C++ Linux网络编程2 - Socket编程与简单UDP服务器客户端
  • 工业场景漏油硬件检测方法及原理
  • 工业设计就业网站在线优化工具
  • 瑞美吉泮Rimegepant说明书深度解析:用法用量,真实世界疗效
  • 做电影网站主机放哪比较好网站页面设计服务
  • 每日两题day41
  • 网站设计与开发期末考试题建筑模拟器2022下载
  • 访问日志查询功能
  • vite创建vue2项目
  • 【MATLAB例程】二维平面的TOA定位,几何精度因子GDOP和克拉美罗下界CRLB计算与输出
  • 怎么创一个网站赚钱免费入驻的外贸平台
  • 云边云科技SD-WAN解决方案 — 构建安全、高效、智能的云网基石
  • 20251112给荣品RD-RK3588开发板跑Rockchip的原厂Android13系统时适配AP6275P模块的BT蓝牙部分【使用原厂的DTS】
  • MyBatis 专题深度细化解析
  • a做爰视频免费观费网站asp网站如何迁移
  • 网站推广平台wordpress怎么加属性
  • 文创做的好的网站推荐微信公众号属于网站建设
  • 1. Cockpit 管理服务器;2. Linux 软件包管理
  • 【剑斩OFFER】算法的暴力美学——山脉数组的蜂顶索引
  • 关键词挖掘工具有哪些兰州seo优化
  • LeetCode 热题 100——哈希——最长连续序列
  • c语言反编译软件|详细解析c语言反编译工具的使用及其重要性