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字段。

  • 相关阅读:
    EntityFramework优缺点
    领导者与管理者的区别
    七个对我最好的职业建议(精简版)
    The best career advice I’ve received
    Difference between Stored Procedure and Function in SQL Server
    2015年上半年一次通过 信息系统项目管理师
    Difference between WCF and Web API and WCF REST and Web Service
    What’s the difference between data mining and data warehousing?
    What is the difference between a Clustered and Non Clustered Index?
    用new创建函数的过程发生了什么
  • 原文地址:https://www.cnblogs.com/qishichang/p/1503207.html
Copyright © 2011-2022 走看看