const和readonly这对“顽固”的兄弟着实会让我这样的菜鸟迷惑。

研究了一番算是有所感悟了。

const常量在编译时就会确定值,编译器直接进行值replace,就像是C语言里的#define。它本身就是static类型的,所以它不能与static共用。有位expert认为它可以作为一个static的子集来理解,我觉得这是可取的。另外它必须在声明时进行初始化。

readonly则是在运行时才初始化,可以在声明时初始化,也可以用construct进行初始化(所以很自然的会有这样一个利好的推论:我们可以通过重载construct来进行“可变的”初始化)。另外一点是readonly可以与static并用,来定义其性质是否是instance-level的。显然定义为static之后就是class-level的了,不能对象引用。

转载于:https://www.cnblogs.com/sunbett/archive/2010/04/22/1717889.html

20100422.C#.const VS readonly相关推荐

  1. const与readonly,析构函数,虚拟方法

    const 与readonly    const 关键字用于修改字段或局部变量的声明.它指定字段或局部变量的值不能被修改.常数声明引入给定类型的一个或多个常数.     常数声明可以声明多个常数,例如 ...

  2. const和readonly内部区别

    const和readonly关键字也是面试中经常考到的问题,通常都是用来表示一个不可变的变量成员,那么具体区别是什么?从用法上说,const只能以inline代码的形式定义,而readonly既可以以 ...

  3. const和readonly

    说道定义的变量不容修改的问题,不得不说起C#中还有一个readonly关键字,也是使用在字段上定义不容修改的值,但是const和readonly有几个区别,             区别1)   在语 ...

  4. C# 总结const、 readonly、 static三者区别:

    总结const. readonly. static三者区别: (有人问我,看似简单,我也没能立刻回答出来,总结一下,分享一下.) const:静态常量,也称编译时常量(compile-time con ...

  5. 如何在 C# 中使用 const,readonly,static

    平时在开发时经常会用到 const,readonly,static 关键字,可以肯定这些关键词是完全不同的概念,但有时候他们在用法上很相似以至于在场景中不知道选择哪一个,这篇文章我们就来讨论 C# 中 ...

  6. const 和readonly

    原文:http://www.cnblogs.com/royenhome/archive/2010/05/22/1741592.html 关于 const和readonly修饰符之间的区别,要牵涉到C# ...

  7. C#中const和readonly的区别

    C#引入了readonly修饰符来表示只读域,const来表示不变常量.顾名思义对只读域不能进行写操作,不变常量不能被修改,这两者到底有什么区别呢?只读域只能在初始化--声明初始化或构造器初始化--的 ...

  8. c# const与readonly 关键字的比较

    C#中,const 与readonly是两个比较有用的关键字.const 与 readonly 定义的数据成员在初始化都不能再改变. 比如定义了 public class MathUtitlity { ...

  9. C# const与readonly的用法和区别解析(转)

    总结一下const和readonly: 1.const和readonly的值一旦初始化则都不再可以改写: 2.const只能在声明时初始化:readonly既可以在声明时初始化也可以在构造器中初始化: ...

最新文章

  1. HTML的标签描述12
  2. redis延迟消息队列不准时php,Redis实现延迟消息队列
  3. Eclipse运行jsp动态网页时,提示服务端口在使用中
  4. 实现redis 手动_Redis精华所在,一口气说完Redis的主从复制和哨兵模式
  5. python图像边缘提取_python通过robert、sobel、Laplace算子实现图像边缘提取详解
  6. 使用Spring Boot搭建你的第一个应用程序
  7. 大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(十二)多语言支持...
  8. php更改txt文件,如何使用php对txt文件进行修改
  9. 小猿圈Linux 之用户和用户组管理(二)
  10. DFS+BFS(POJ3083)
  11. pythoninit_Python __init__.py文件的作用
  12. 说说微信聊天记录收费这件事
  13. 产品经理面试必问(附解析)
  14. 织梦dedecms内核手赚网手机试玩平台源码PC+手机版
  15. java jmail_JavaMail学习--使用JMail发送邮件
  16. MAC快捷键还原最小化的(cmd+M)程序窗口
  17. 西游之路——python全栈——django中orm的使用(1)
  18. Waiting alone
  19. Excel中IF函数的使用
  20. Linux 安装cacti

热门文章

  1. bzoj 4487: [Jsoi2015]染色问题
  2. Java设计模式GOF之6大设计原则
  3. poj3580 伸展树(区间翻转 区间搬移 删除结点 加入结点 成段更新)
  4. 张一鸣演讲全文:外部波澜起伏,内心平静如常
  5. PMCAFF微课堂「已结束」 | 阿里资深运营揭秘电商运营与纯互联网运营的区别与互通
  6. 「敏捷开发」适合什么样的团队?
  7. 创业公司其实根本不需要管理
  8. C# SqlBulkCopy数据批量入库
  9. EBS R12.2 ADOP (R12.2 AD Online Patching) - 5
  10. HTML 5 视频,音频