• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#中public,private,protected,internal都有什么区别?

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

参考资料:
https://www.cnblogs.com/net-sky/p/10345566.html
《C# 7 核心编程》

因为一直区分不清什么时候该用什么访问控制修饰符,在这里稍微把这两天从网上查到的资料总结一下。

  1. default(默认的访问修饰符):

    • 方法的默认访问修饰符为 private
    • 类 class 的默认访问修饰符为 internal,构造函数默认为 public,析构函数不能显示使用访问修饰符且默认为 private 访问修饰符,类的成员默认为private
    • 接口 interface 的成员默认访问修饰符为 public,且不能显式使用访问修饰符
    • 枚举 enum 类型成员默认为 public,且不能显式使用访问修饰符
    • 结构体 struct 成员默认private,且不能用protected修饰,因为 struct 没有“继承”特性
    • 嵌套类型默认 private,与 class、struct 的成员的默认访问类型一致
    • 命名空间下的元素的默认访问修饰符:
      • public: 同一程序集的其他任何代码或引用该程序集的其他程序集都可以访问该类型或成员(类内、程序集内、程序集外、子类中等)
      • internal: 同一程序集中的任何代码都可以访问该类型或成员,但其他程序集不可以访问。(类内、程序集内、子类中)
  2. 剩下的修饰符主要针对“继承”特性,class 与 interface 均有该特性:

    • private: 同一类和结构的代码可以访问该类型和成员,即只能在类内访问,完全私有
    • protected: 同一类和派生(继承特性)类中的代码可以访问该类型和成员,受保护
    • protected internal: 同一程序集中的任何代码或其他程序集中的任何派生类都可以访问该类型或成员,这两个修饰符组合使用很容易误导人。该访问修饰符允许在本类,派生类或者包含该类的程序集中访问,这也被用于实现继承
  3. internal 与 protected internal 区别:internal 修饰的成员在其他程序集中的派生类中无法访问

  4. 类特有的访问控制修饰符:

    • sealed:不能被继承的类
    • partial:可以声明在不同文件中的同一个类

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c语言变量类型联想 - acodewarrior发布时间:2022-07-13
下一篇:
Linux上下左右键变成^A,^B,^C,^D解决方法发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap