zoukankan      html  css  js  c++  java
  • 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 字段只能在一个构造器方法中写入。

  • 相关阅读:
    可执行
    创建
    可能的加分项
    给老师的建议
    周总结
    今日总结
    今日总结
    今日总结
    今日总结
    今日总结
  • 原文地址:https://www.cnblogs.com/whx1973/p/2606921.html
Copyright © 2011-2022 走看看