const和readonly的区别

Posted 守望阳光01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const和readonly的区别相关的知识,希望对你有一定的参考价值。

1.const、readonly和static readonly定义的常量,指定初始值后(包括在构造函数内指定的初始值) 将不可更改,可读不可写;
2.const定义时必 须指定初始值,而readonly定义时可以不进行初始化(MS建议在定义时初始值),同时也可以在构造函数内指定初始值,并以构造函数内指定的值为准;

 3.const和static readonly定义的常量是静态的,只能由类直接访问;而readonly定义的常量是非静态 的,只能由实例对象访问;   

 4.static readonly常量,如果在构造函数内指定初始值,则必须是静态无参构造函数;
5.const是编译时常量,readonly是运行时常量;cosnt较高效,readonly较灵活。在应用上以static readonly代替const,以平衡const在灵活性上的不足, 同时克服编译器优化cosnt性能,所带来的程序集引用不一致问题; 

以上是关于const和readonly的区别的主要内容,如果未能解决你的问题,请参考以下文章

const和static readonly 区别

const和static readonly 区别

C# const和readonly修饰符的区别

c#中const与readonly区别

.NET面试题1

Java的Final和C#的Const,Readonly比较分析(转载)