• 访问修饰符(public,private,protected,internal,sealed,abstract)(转)


    为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符.

    修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及protectde internal(只有本程序内或者继承于该类的类型可以访问).

    可以使用修饰符的对象:namespace(命名空间),class(类),struct(结构),enum(枚举),interface(接口),delegate(委托),function(函数),变量

    1.public:

    访问不受限制.是权限最多的一个修饰符.namespace和enum成员,interface的成员隐式的具有public修饰符.不能再显式添加其修饰符.

    2.private:

    只有同一个class或struct中能被访问.class或truct中的成员如果不加修饰符则默认是private

    3.protected:

    访问仅限于当前class或继承的class.比如在一个class Student中声明一个函数protected int Add(){    };在则只能在Student中用Add,或者在继承于Student的子类中用base.Add()来用num.但实例化class得到的对象不能用Add.比如Student s = new Student();  s.Add();这样是错误的.(注意:声明class,struct前是不能加protected修饰的.只能用public 或internal)

    4.internal:

    仅限于当前程序集.即同一个project中.

    class或struct,interface如果不加修饰符则默认是internal.但也可以显示声明为internal或public(注:如果class,struct是在一个class中声明的也可以protected,private修饰.也就是说一个class中还可以嵌套的声明一个class)

    5.protected internal:

    同一程序集或继承的子类可访问.其实相当于是protected 和internal两个权限累加到一起了.(注意,由于struct是不能继承的,所以它的成员也不能由protected或protected internal修饰.

    注意:派生的class可访问性不能比基类更高.也就是说如果基类被internal修饰则子类只能用internal修饰.如果基类都public修饰子类可用internal也可用public.

    除了权限修饰符外还有四个修饰符sealed,abstract,virtual,partial(这四个修饰符可以和上面五个权限修饰符一起用.写在权限修饰符前面或后面都行)

    sealed只能用来修饰class,表示class不能被继承.

    abstract可用来修饰class和class中的成员.但必须是class被abstract修饰了,成员才能被abstract修饰.它表示此class是抽象类,不能实例化,必须被继承并重写抽象函数

    virtual只能用来修饰class中的函数,表明是虚函数,虚函数除了可以被重写外其他时候跟一般函数一样.虚函数重不重写是可选的,不是必须的

    partial

    通过使用关键字partial可以把一个class分开来写,可以在一个project中的不同文件中.在一个class特别大,由几个人合作写时这功能特别有用.

    在Winform开发中系统也自动的用partial为我们把一个class分开来写.比如我们添加Form1.则会看到有两个文件Form1.cs, Form1.Designer.cs它们其实就是一个class,通过关键字partial分成两个文件.我们主要是在Form1.cs中添加代码.Form1.Designer.cs是自动生成的跟页面有关的代码.其实我们也完全可以不拖控件,而是由自己去Form1.Designer.cs中添加代码.不过这样可太麻烦了啊。

  • 相关阅读:
    王歆瑶20191128-1 总结
    王歆瑶 20191121-1 每周例行报告
    王歆瑶20191114-1 每周例行报告
    王歆瑶20191107-1 每周例行报告
    王歆瑶20191031-1 每周例行报告
    王歆瑶20191024-1 每周例行报告
    王歆瑶20191017-1 每周例行报告
    王歆瑶20191010-2 每周例行报告
    王歆瑶20190919-4 单元测试,结对
    LeetCode 11 盛水最多的容器
  • 原文地址:https://www.cnblogs.com/MrLi/p/2489720.html
Copyright © 2020-2023  润新知