const 和 readonly关键字声明的变量的区别

const 和 readonly关键字声明的变量(常量变量和只读变量)的区别
 
1.按可声明的变量类型:const只能声明简单类型和string类型的变量,如:int,string,double。
                      而readonly则可以声明任意类型。

2.按赋值方式:const只能在声明变量时赋值,在声明时也必须要赋值
              readonly可以在声明或构造函数中赋值(包括同时),
 
3.按成员的身份:const声明的变量是静态的,归类所有,且不能在其他地方改变其值了。eadonly声明的变量可以是静态(不追随实例)的也可以是动态(追随实例)的,关键是看前面有没有static,有则是静态的,否则是动态的。
 
4.按做组件时主程序对它们的调用方式(这一条是很高级的主题了,我还不知道这种区别的好处):const声明的变量在主程序编译时就调用,而static readonly声明的变量在主程序运行时才调用(const声明的变量和readonly声明的变量在这方面没有可比性,因为一个是静态
的,一个是动态的)。

 
这次在做项目时,准备使用一个常量成员变量(const变量)表示软件试用的最大次数,结果在调用是发现不能调用。现在知道什么原因了,原来const声明的是静态的变量,在实例方法中是不能调用的。
 
我想在实际项目中readonly关键字要使用的多些,要方便些。因为它声明的变量可以在实例函数中调用。
 
如果上面的每一条我都举实例来验证,是非常花时间的,只好作罢。如果能在项目中给你一些帮助,我会感到很欣慰的。
 
欢迎交流指教。









本文转自 参天树 51CTO博客,原文链接:http://blog.51cto.com/119244/51464,如需转载请自行联系原作者
上一篇:jQuery图片分组切换焦点图


下一篇:iBatis.Net(C#)SQL数据映射