zoukankan      html  css  js  c++  java
  • C# 访问修饰符和const、readonly

    今天被人问起const和readonly,竟然有点咬不准,复习一遍。

    访问修饰符

    public 公有访问。不受任何限制。 
    private 私有访问。只限于本类成员访问,子类,实例都不能访问。 
    protected 保护访问。只限于本类和子类访问,实例不能访问。 
    internal 内部访问。只限于本项目内访问,其他不能访问。 
    protected internal 内部保护访问。只限于本项目或是子类访问,其他不能访问

      

    const和readonly
    const和readonly的值一旦初始化则都不再可以改写;
    const只能在声明时初始化;readonly既可以在声明时初始化也可以在构造器中初始化;
    const隐含static,不可以再写static const;readonly则不默认static,如需要可以写static readonly;
    const是编译期静态解析的常量(因此其表达式必须在编译时就可以求值);readonly则是运行期动态解析的常量;
    const既可用来修饰类中的成员,也可修饰函数体内的局部变量;readonly只可以用于修饰类中的成员.

    const修饰的常量是上述中的第一种,即静态常量,而readonly是上述中第二种即动态常量。他们的区别可以从静态常量和动态常量的特性来说明:
    const修饰的常量在声明时必须初始化值;readonly修饰的常量可以不初始化值,且可以延迟到构造函数。
    cons修饰的常量在编译期间会被解析,并将常量的值替换成初始化的值;而readonly延迟到运行的时候。
    const修饰的常量注重的是效率;readonly修饰的常量注重灵活。
    const修饰的常量没有内存消耗;readonly因为需要保存常量,所以有内存消耗。
    const只能修饰基元类型、枚举类、或者字符串类型;readonly却没有这个限制。

  • 相关阅读:
    java课堂作业--异常处理
    Node.js 应用---定时给自己发送邮件
    JAVA课堂作业(2019.10.21)
    添加学生信息系统
    Hdfs的java必会Api操作
    架构之美2
    mybatis知识点03
    mybatis知识点总结02
    mybatis知识点总结01
    第四周周总结
  • 原文地址:https://www.cnblogs.com/zhaiyf/p/7791798.html
Copyright © 2011-2022 走看看