语法基础(三十七)-修饰符总结

C#的访问修饰符

修饰符 含义
private 只能在当前类中访问
public 同一程序集(DLL或EXE)中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。
protected 只有同一类或结构或者此类的派生类中的代码才可以访问该类型或成员。
internal 同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以访问,不写默认就是internal
protected internal 类只能在当前项目中访问,不能被继承,只能实例化

类的声明修饰符

  • abstract

使用abstract修饰的类为抽象类,抽象类只能是其他类的基类,不能与sealed、static一起使用。
abstract可以修饰抽象类中的方法或属性,此时,方法或属性不能包含实现,且访问级别不能为私有。
抽象类不能被实例化。

  • sealed
    使用sealed修饰的类为密封类,密封类无法被继承,不能和abstract、static一起使用。
    当sealed用于方法或属性时,必须始终与override一起使用。

  • static
    使用static修饰的类为静态类,静态类所有成员都必须是静态的,不能与abstract、sealed一起使用。
    static可以修饰方法、字段、属性或事件,始终通过类名而不是实例名称访问静态成员,静态字段只有一个副本。
    静态类不能被实例化。

const

使用const关键字来声明某个常量字段或常量局部变量,必须在声明常量时赋初值。
不能与static一起使用,常量默认是static的,常量字段只有一个副本。

  • readonly
    使用readonly关键字来声明只读字段。
    只读字段可以在声明或构造函数中初始化,每个类或结构的实例都有一个独立的副本。
    可以与static一起使用,声明静态只读字段。
    静态只读字段可以在声明或静态构造函数中初始化,静态常量字段只有一个副本。

  • virtual
    virtual关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。
    默认情况下,方法是非虚拟的。 不能重写非虚方法。
    virtual修饰符不能与static、abstract、private或override修饰符一起使用。

  • override
    要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用override修饰符。
    重写的成员必须是virtual、abstract或override的。

  • 注意点:
    一个成员或类型只能有一个访问级别。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容