zoukankan      html  css  js  c++  java
  • 字段

     

    字段是一种数据成员,其中存放值类型的实例或者引用类型的引用,下表给出了可用于字段的修饰符。

    CLR术语

    C#术语

    描述

    Static

    static

    该字段是类型状态的一部分,而不是对象的状态的一部分

    Instance

    默认

    该字段与类型的实例相关联,而不是与类型本身相关联

    InitOnly

    readonly

    该字段只能由构造器方法包含的代码写入

    Volatile

    volatile

    访问该字段的代码不受线程不安全(threadunsafe)优化的制约,而这种优化可能是由编译器、CLR或者硬件来执行的,只有下述类型可以标记为volatile:所有的引用类型,SignleBooleanByteSByteInt16 , UInt16 , Int32 , UInt32 , Char以及基本类型为ByteSByteInt16UInt16Int32或者UInt32的枚举类型。

        公共语言运行库(Common Language RuntimeCLR)同时支持类型(静态)字段和实例(非静态)字段。对于类型字段,存放字段数据所需的动态内存是在类型对象内部分配的,而动态内存是在类型加载到应用程序域(AppDomain)时创建的,也就是说在首次引用类型时才创建动态内存,也即JIT编译。对于实例字段,创建类型实例时才分配字段的动态内存。

        因为字段存储在动态内存中,所以只有在运行时才可以得到字段的值。字段同样可以解决常量存在的版本控制问题。另外,字段可以是任何数据类型,因此不必将字段限制为编译器内置的基元类型(常量在类型上存在限制)。

              CLR支持只读字段或者读/写字段。大多数字段是读/写字段,这意味着在执行代码过程中字段的值可能改变数次。但是,只读字段只能在构造器方法中写入数值(称之为一次写,即在对象首次创建时写入。需要注意的是,可以采用反射(reflection)来修改readonly字段。

  • 相关阅读:
    Python容器(zz)
    [Violet]蒲公英 分块
    [JSOI2008]火星人 hash+splay
    [USACO08DEC]拍头Patting Heads 水题
    [国家集训队]整数的lqp拆分 数学推导 打表找规律
    [HNOI2008]水平可见直线 单调栈
    [LNOI2014]LCA 树链剖分 离线 前缀和 思维题
    [SCOI2008]着色方案 递推 记忆化搜索
    [NOI2010]海拔 平面图转对偶图 最小割
    [NOI2008]志愿者招募 网络流 建模
  • 原文地址:https://www.cnblogs.com/qishichang/p/1503207.html
Copyright © 2011-2022 走看看