C#中修饰符和访问修饰符的总结

C#中的修饰符:C#中有三类修饰符,分别是访问修饰符、类修饰符和成员修饰符。 

(1)访问修饰符(4个)

 public定义公共类型;

protected定义保护类型;

private定义私有类型;

internal定义内部类型。 

(2)类修饰符(2个)

abstract用于修饰抽象类;

sealed用于修饰最终类。 

(3)成员修饰符(8个)       

    abstract定义抽象函数;        

    const定义常量;        

    event定义事件;          

    extern告诉编译器在外部实现;        

    override定义重载; 

    readonly定义只读属性;    

      static用来声明静态成员;  

       virtual定义虚函数       

C#中访问修饰符总共为5类:分别是public.private.protected.internal.protected internal.

访问修饰符说明
public公共访问,不收任何限制
private私有访问,只限制于本类成员访问,子类,实例都不能访问
protected保护访问,只限于本类和子类访问,实例不能访问。
internal内部访问,只限于本项目内访问,其他不能访问。
protected internal内部保护访问,只限于本项目或者子类访问,其他不能访问。

  再结合实例,加深理解public、private、protected、internal和protected internal的作用范围。

新建立一个控制台应用程序,在解决方案中添加一个类库项目,其中类文件代码如下所示

 //类库中的三个类

using System;

using System.Collections.Generic;

using System.Text;

namespace AccessModifier

{

  public class AccessModifierClass

 {

      public string GetPublicString()

    {

         return"Public String";

     }

private string GetPrivateString()        

{            

return "Private String";     

    }  

        internal string GetInternalString()  

       {  

           return "Internal String";   

      }  

        protected internal string GetProtectedInternalString() 

        {            

return "Protected Internal String";        

}

void AvailableAccessModifier()  

       {           

  this.GetPublicString();   

          this.GetPrivateString();    

         this.GetInternalString();     

        this.GetProtectedInternalString();      

       this.GetProtectedString();   

      }  

   }    

  public class TestAccessModifierClass1 

    {   

      void AvailableAccessModifier() 

        {         

    AccessModifierClass item = new AccessModifierClass();    

         item.GetPublicString(); 

            item.GetInternalString();    

         item.GetProtectedInternalString();    

                  } 

    }     

public class TestAccessModifierClass2 : AccessModifierClass    

{      

   void AvailableAccessModifier()    

     {           

  AccessModifierClass item = new AccessModifierClass();         

    item.GetPublicString();          

   item.GetInternalString();        

     item.GetProtectedInternalString();    

         base.GetProtectedString();       

  }    

}

}

AccessModifierClass是我们的访问修饰符类,里面有五种访问修饰符

在TestAccessModifierClass1类中的AvailableAccessModifier()方法只能访问public、Internal和Protected Internal方法。

TestAccessModifierClass2类继承自AccessModifierClass类,所以它的AvailableAccessModifier()方法可以访问public,internal,protected和protected internal方法。

在新建一个工程,且引用AccessModifierClass类的dll,代码如下。

using System;

using System.Collections.Generic;

using System.Text;

using AccessModifier; 

namespace AccessModifierApp

{    

public class AccessModifierAppClass1 

    {       

  void AvailableAccessModifier()      

   {          

   AccessModifierClass item = new AccessModifierClass();   

          item.GetPublicString();         

           

}    

}    

  public class AccessModifierAppClass2 : AccessModifierClass  

   {        

void AvailableAccessModifier()        

{            

AccessModifierClass item = new AccessModifierClass();          

   item.GetPublicString();           

  base.GetProtectedString();    

         base.GetProtectedInternalString();   

      }   

  }       

   public class program   

  {      

   public static void Main()    

     {       

   }    

}    

}

AccessModifierAppClass1类的AvailableAccessModifier()方法只能访问public方法。

AccessModifierAppClass2类继承自AccessModifierClass类,所它的AvailableAccessModifier()方法

 

 

转载于:https://www.cnblogs.com/lihuaxi2013/archive/2013/03/11/2953617.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值