• 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 字段只能在一个构造器方法中写入。

  • 相关阅读:
    yarn 完美替代 npm
    Vue调试神器vue-devtools安装
    PHPStorm 忽略 node_modules 目录
    npm 更改为淘宝镜像的方法
    php快速获取所有的自定义常量用户常量
    我们为什么要在 PHPStorm 中标记目录
    PhpStorm 合理标注目录让索引和扫描更加地高效
    Linux sleep命令
    Shell命令行中特殊字符与其转义详解(去除特殊含义)
    shell编程—— EOF
  • 原文地址:https://www.cnblogs.com/whx1973/p/2606921.html
Copyright © 2020-2023  润新知