首页 > 技术文章 > 漫话CLR ---- 常量与字段

woodywu 2013-08-19 10:04 原文

  常量就是硬编码在软件中的元数据信息.编译之后就被固定在软件中,老死不能修改.你可以理解为手机中的一次性写入固件,或者一次性刻录CD中的内容.只能是基础类型,比如Int32,string,char之类,如果是引用类型,则其引用值必须为null,,所以比较有意义的就是声明为基础的值类型.

  字段是保存值类型数据或者引用类型的引用的东东.

  const 和 readonly

  const声明的字段在编译的时候被硬编码到软件中,编译时就已经确定其值.

  readonly是只读类型,只有在构造器中初始化,或者在声明时赋值.一次赋值以后就不能修改.

  需要注意的是,使用readonly标示的引用类型,其引用不能修改,但是引用类型内部的内容是可以修改的.比如:

    class Program
    {
        class Person
        {
            public int Age;
        }

        static readonly Person p = new Person();

        static void Main(string[] args)
        {
            p.Age = 15;     //OK    
            p.Age = 20;     //OK
            //p = new Person();   //Complie ERROR
            Console.ReadKey();  
        }
    }

 

  

推荐阅读