zoukankan      html  css  js  c++  java
  • C#修饰符

    修饰符用于限定类型以及类型成员的申明

    从定义可以看出按功能分为两类:访问修饰符和声明修饰符

    1.访问修饰符 (5个)

    访问修饰符

    说明

    public

    公有访问。不受任何限制。

    private

    私有访问。只限于本类成员访问,子类,实例都不能访问。

    protected

    保护访问。只限于本类和子类访问,实例不能访问。

    internal

    内部访问。只限于本项目内访问,其他不能访问。

    protected internal

    内部保护访问。只限于本项目或是子类访问,其他不能访问

        C#成员类型的可修饰及默认修饰符如下表:

    成员类型

    默认修饰符

    可被修饰符

    enum

    public

    none

    class

    private

    public、protected、internal、private、 
    protected internal

    interface

    public

    none

    struct

    private

    public、internal、private

    2.声明修饰符 (10个)

    Partial:在整个同一程序集中定义分部类和结构

    Static: 声明属于类型本身而不是属于特定对象的成员。

    Abstract:抽象类,只能是其他类的基类。类中的方法只声明不实现,方法的实现在他的派生类中完成。

    Sealed:指定类不能被继承。

    Virtual:用于修饰方法、属性、索引器或事件声明,并且允许在派生类中重写这些对象

    Override:提供从基类继承的成员的新实现

    New:作修饰符,隐藏从基类成员继承的成员,在不使用 new 修饰符的情况下隐藏成员是允许的,但会生成警告。作运算符,用于创建对象和调用构造函数。

    Extern:用于声明在外部实现的方法。 extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 特性一起使用。 在这种情况下,还必须将方法声明为 static

    Readonly:修饰字段,表示该字段为只读字段。

    注意:readonly修饰引用类型时由于操作不当可能修改该只读对象状态。例如:Readonly List< Person> persons=….;

    我们可能在某些地方对persons 进行了修改:persons.add(new Person());

    Const:修饰字段,表示该字段为只读字段。并且在编译时必须能够明确知道该字段的值,其值是硬编码到程序中去的,修改了该类型成员后需要重新编译才能使修改生效。

    而readonly是运行时只读,内容在运行时确定,所以修改了readonly类型成员后无需重新编译即可生效。 

    Readonly不能修饰局部变量,const可以。

    要点:

      Virtual,override和new 的区别

    virtual  用于父类中,声明某方法可以重写,该方法不能是static;

    override(覆盖继承) 用于子类中,重写父类中用virtual/override/abstract关键字声明的方法;

    new(隐藏继承)  用于子类中,可修饰父类中有或无virtual声明的方法;

      如果在父类中有与父类同名同参的方法时,C#会隐式在子类前添加一个new关键字。 

    【区别】override与new

      当将一个子类实例赋值给父类实例,在子类实例与父类实例中分别调用该方法时:使用override修饰的都将调用子类方法,而使用new修饰的会分别调用子类方法和父类方法。

      New和Override这两个关键字是互斥的。不可以同时使用。  

    【区别】virtual与abstract

      virtual:用于父类中声明该方法可被重写。

      abstract:只能用在抽象类中声明抽象方法,本身不能实现任何功能(因此必须在子类中override),不能实例化。

      两者除了在子类中同样可以用override重写这个相同点之外,没有其他关系。 

     

  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1036. Boys vs Girls (25)
    1035 Password (20)
    1027 Colors in Mars (20)
    1009. Product of Polynomials (25)
    1006. Sign In and Sign Out
    1005 Spell It Right (20)
    1046 Shortest Distance (20)
    ViewPager页面滑动,滑动到最后一页,再往后滑动则执行一个事件
    IIS7.0上传文件限制的解决方法
  • 原文地址:https://www.cnblogs.com/qinyi173/p/4635849.html
Copyright © 2011-2022 走看看