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

  • 相关阅读:
    常见寻找OEP脱壳的方法
    Windows内核原理系列01
    HDU 1025 Constructing Roads In JGShining's Kingdom
    HDU 1024 Max Sum Plus Plus
    HDU 1003 Max Sum
    HDU 1019 Least Common Multiple
    HDU 1018 Big Number
    HDU 1014 Uniform Generator
    HDU 1012 u Calculate e
    HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/zhaiyf/p/7791798.html
Copyright © 2011-2022 走看看