再论访问修饰符

前言:

   今天又见到了老问题,在C#中访问修饰符的作用范围有哪些? 我的回答是:

i)当修饰类中成员函数时:

  • private :只能被类中使用;
  • public :能够在类内部以及类外部使用;
  • protected :可以在类内部及派生类中使用,雷同于private;
  • internal :可以在程序集中使用,雷同于public ;

ii)当修饰类时:

  • public :可以在类外,进行类的实例化;
  • private :不可以在类外进行对象实例化;

特别是对修饰类时的访问修饰符用法,不甚清楚。经过进一步的调试、及网上查阅,基本厘清,在此详细列举。

 

访问修饰符细分:

   将就private ,public ,protected ,internal ,protected internal进行分析:


当修饰类中字段、成员函数时

  • private :只能被类内部使用;
  • public :能够在类内部及外部访问;
  • protected :能够在类内部、即派生类中访问。其功能相似于private ,可认为是其延展;
  • internal :能够在程序集内部使用,其功能相似于public ,可认为是其压缩;ex,同一项目的控制台程序,在主类上加一类,其中包含internal 时,在主函数中的实例化对象,其可以访问internal 成员。而若在另加项目的类库中实现类,则主函数中无法访问internal 成员;
  •  protected internal :能够在类内部、派生类以及程序集中被访问;
  默认情况下,其为private 类型。

当修饰类时: 

     类型的定义只能是internalpublic 类型的。 其余的protected ,private和protected internal 类型对于包含在命名空间中的类型来说都是没有意义的。

  • internal :在程序集内部可以对类实例化 。ex,主函数上的internal 类,可以在主函数中加以使用。而在另加项目类库中实现的internal类,则主函数中,无法使用。即,不可访问;
  • public :在程序及内、外都可以对其访问。

  默认情况下,其为internal 类型。

 

    综述之,通过对访问修饰符的进一步细分、分析,理清了以前的混淆之处。呵呵~

转载于:https://www.cnblogs.com/yangmingming/archive/2010/03/15/1686638.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值