const和readonly的区别

   readonly修饰符用来表示只读,const表示不变常量。顾名思义,只读不能进行写操作,不变常量不能被修改,这两者到底有什么区别呢?

  1.const和readonly都是用来标识常量的。

  2.初始化赋值不同

 const修饰的常量必须在声明的同时赋值。例如:

public class www_35hunan_com
    {
        public const int tempInt = 10;//正确
        public const int tempInt;//错误,const修饰的常量必须在声明的同时赋值
    }

readonly 字段可以在初始化(声明或构造函数)的过程中赋值,其他地方不能进行赋值,

public class www_35hunan_com
    {
        public readonly int tempInt = 10;//正确
        public www_35hunan_com()
        {
            this.tempInt = 10;//正确
        }
        public void MyMothod()
        {
            this.tempInt = 10;//错误
        }
    }

3.const字段是编译时常量,而readonly字段运行时常量

4.const默认就是静态的

你可能感兴趣的:(readOnly)