• CLR via C# 读书笔记 常量和字段


    常量(constant)

    • 是一个特殊的符号,它有一个从不变化的值。
    • 定义常量符号时,它的值必须能在编译时确定。确定之后,编译器将常量的值保存在程序集的元数据中。
    • 常量的定义必须用基元类型,在c#中,Boolean 、Char、Byte、SByte、Int16、UInt16、Int32、UInt32、Int64、Single、Double、Decimal和String。C#也允许定义一个非基元类型的常量变量,前提是常量变量的值设定为null
    • 常量被看作是类型定义的一部分,可以看作是静态类型
    • 运行时不需要为常量分配内存,不能获取常量的地址,也不能以传引用的方式传递常量

    字段(field)

    字段是一种数据成员,其中容纳了一个值类型的实例或者对一个引用类型的引用


    字段修饰符

    CLR术语  C# 术语  说明
     Static  static   这种字段是类型状态的一部分,而不是对象状态的一部分 
     Instance    默认   这种字段与类型的一个实例关联,而不是与类型本身关联 
     InitOnly  readonly   这种字段只能由一个构造器方法中的代码写入 
     Volatile  volatile  

    看到访问这种字段的代码,编译器、CLR或硬件就不会执行一些“线程不安全”

    的优化措施。只有以下类型才能标记为volatile:所有的引用类型,Single、

    Boolean、Byte、SByte、Int16、UInt16、Int32、UInt32、Char,以及

    基础类型为Byte、SByte、Int16、UInt16、Int32或UInt32 的所有枚举类型

    CLR支持类型(静态)字段和实例(非静态)字段。

    • 类型字段,用于容纳字段数据的动态内存是在类型对象中分配的。
    • 实例字段,用于容纳字段数据的动态内存是在构造类型的一个实例时分配的。

    readonly字段

    readonly 字段只能在一个构造器方法中写入。

  • 相关阅读:
    性能测试的bug【杭州多测师】【杭州多测师_王sir】
    Typescript: 当出现错误时,不编译文件成js文件
    git基础命令
    获取页面宽度
    详解linux下的串口通讯开发
    货源清单的配置
    物料在工厂中未被维护
    quota配额配置
    采购组织不对工厂负责
    拓端tecdat:Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
  • 原文地址:https://www.cnblogs.com/whx1973/p/2606921.html
Copyright © 2020-2023  润新知