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却没有这个限制。

  • 相关阅读:
    豆瓣api-简单跨域演示
    MVC4 验证用户登录一个特性搞定
    IIS7.5 不能加载外部引用的第三方JS,CSS,img等一系列静态文件
    三合一网站后台密码重置
    anaconda安装 (开源的Python发行版本)
    通达信指标函数说明大全
    织梦CMS如何修改中英文模板的当前位置
    微信小程序上架需要增值电信业务经营许可证ICP?
    PS抠图玻璃杯227
    PS用通道工具人物头发抠图246
  • 原文地址:https://www.cnblogs.com/zhaiyf/p/7791798.html
Copyright © 2011-2022 走看看