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

C# 五大访问修饰符

一、五大访问修饰符总览

C# 权限从小到大排序:private → protected → internal → protected internal → public

测试类统一字段(所有规则基于以下字段验证):

public class People { public int a = 10; // 公共 private int b = 20; // 私有 protected int c = 30; // 受保护 protected internal int d = 30; // 受保护内部 internal int e = 30; // 内部 }

二、逐修饰符权限详解(同项目 + 跨项目)

1. private 私有的(权限最小)

核心规则:仅当前类内部可以访问,其余全部禁止

  • 当前类内部:✅ 可访问

  • 本项目子类:❌ 不可访问

  • 本项目外部实例:❌ 不可访问

  • 跨项目任何场景:❌ 不可访问

2. protected 受保护的

核心规则:只给自己和子类用,外部实例无权访问

  • 当前类内部:✅ 可访问

  • 本项目子类:✅ 可访问

  • 本项目外部实例:❌ 不可访问

  • 跨项目子类:✅ 可访问

  • 跨项目外部实例:❌ 不可访问

3. internal 内部的(项目级权限)

核心规则:仅限当前整个项目内部使用,跨项目彻底失效

  • 当前类内部:✅ 可访问

  • 本项目子类:✅ 可访问

  • 本项目外部实例:✅ 可访问

  • 跨项目子类:❌ 不可访问

  • 跨项目外部实例:❌ 不可访问

4. protected internal 受保护内部(合并权限)

核心规则:取 protected 和 internal 的并集,满足其一即可访问

  • 当前类内部:✅ 可访问

  • 本项目子类:✅ 可访问

  • 本项目外部实例:✅ 可访问

  • 跨项目子类:✅ 可访问(继承权限生效)

  • 跨项目外部实例:❌ 不可访问

5. public 公共的(权限最大)

核心规则:全场景无限制,任何地方都能访问

  • 当前类内部:✅ 可访问

  • 本项目子类:✅ 可访问

  • 本项目外部实例:✅ 可访问

  • 跨项目子类:✅ 可访问

  • 跨项目外部实例:✅ 可访问


三、代码场景验证(对应你的源码)

1. 本项目类内部(People 内部方法 F1)

所有修饰符成员全部可以访问

public void F1() { Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); Console.WriteLine(d); Console.WriteLine(e); }

2. 本项目子类(Man 类)

唯独 private 不可访问

public void F2() { Console.WriteLine(a); //public ✅ // Console.WriteLine(b); //private ❌ Console.WriteLine(c); //protected ✅ Console.WriteLine(d); //protected internal ✅ Console.WriteLine(e); //internal ✅ }

3. 本项目外部实例(Main 方法实例调用)

private、protected 禁止实例访问

People p = new People(); Console.WriteLine(p.a); //public ✅ //Console.WriteLine(p.b) //private ❌ //Console.WriteLine(p.c) //protected ❌ Console.WriteLine(p.d); //protected internal ✅ Console.WriteLine(p.e); //internal ✅

4. 跨项目场景(子类 Woman + 外部实例)

跨项目彻底截断 internal,仅保留 public、protected、protected internal 的子类权限

// 跨项目子类 public class Woman : People { public void F3() { Console.WriteLine(a); //public ✅ Console.WriteLine(c); //protected ✅ Console.WriteLine(d); //protected internal ✅ // Console.WriteLine(e); //internal 跨项目 ❌ } } // 跨项目实例调用 People p = new People(); Console.WriteLine(p.a); //public ✅ //其余所有成员 全部不可访问

四、五大修饰符终极汇总表(背诵神器)

修饰符

本类内部

本项目子类

本项目实例

跨项目子类

跨项目实例

private

protected

internal

protected internal

public


五、满分必考口诀

  • private私有最自闭,只在本类能看见

  • protected护子类,实例外部看不见

  • internal锁项目,跨项目就作废

  • protected internal双权限,子类/本项目随便用

  • public全开放,走遍项目都能用

http://www.gsyq.cn/news/1462964.html

相关文章:

  • 2026年6月无刷电机/无刷直流电机/无刷电机控制器/直流无刷驱动板/无刷驱动板厂家推荐榜单:精密调速与高效节能优选! - 企业推荐官【官方】
  • Snippy快速指南:10分钟掌握单倍体变异检测与核心基因组比对
  • 多线程学习笔记
  • 普宁长期看电脑的人配眼镜找哪家好|防蓝光镜片真的有必要配吗 - 品牌观察
  • 做题记录5 —— 2026.6
  • 优刻得GLM-5 Pro国产芯片推理实战指南
  • OpenCV findCirclesGrid实战:手把手教你搞定相机标定用的圆点棋盘检测
  • 千问 LeetCode 2935. 找出强数对的最大异或值 II JavaScript实现
  • LLM和Agent——专题5: LLM Ops 入门(4)
  • 2026年 广东铝型材厂家推荐:深圳工业铝型材/散热器铝型材/异型铝型材/精密6063铝型材定制开模与挤压源头实力榜单 - 品牌企业推荐师(官方)
  • 基于Arduino LilyPad的视觉暂留手套制作:从原理到可穿戴互动艺术
  • es6新特性功能介绍(二)
  • 沐风老师3DMAX中式屋顶生成器ChineseRoof使用方法
  • HarmonyOS 6 ArkUI 像素单位使用文档
  • 大疆无人机固件自由:3步掌握DankDroneDownloader终极指南
  • DNS 的工作原理:面向开发者的图解指南
  • 构建私有化安全协作平台:以金融级协作平台与全链路安全防护体系重塑政企数字化底座
  • 揭秘低查重AI教材生成秘诀!AI教材写作工具实测,高效产出精品教材!
  • 2026苏州PLC培训标杆名录:三家机构实力对比解析 - 互联网科技品牌测评
  • 实战应用:基于快马生成的代码打造个人专属tvbox配置管理工具
  • 基于Arduino Pro Mini的便携式游戏机DIY全流程指南
  • 2026年炸鸡店创业品牌推荐榜:合肥/南京韩式炸鸡外卖,低成本社区档口与夜宵店优质之选! - 品牌企业推荐师(官方)
  • 2026昆山PLC培训排行:从硬件到就业的客观评估 - 互联网科技品牌测评
  • LinkSwift:5分钟掌握网盘直链解析终极方案,告别限速烦恼
  • 告别熬夜改PPT!百考通AI,一站式解决高校答辩PPT制作难题
  • 3步免费解锁Grammarly Premium高级版:autosearch-grammarly-premium-cookie完整指南
  • 如何在微信小程序中快速生成二维码:weapp-qrcode终极指南
  • 政企专属的私有化安全协作平台,构建金融级全链路安全防护体系
  • 计算机毕业设计之基于数据挖掘算法的电影推荐系统
  • 央视大推特推的OPC(一人公司),我做了!