因此,根据我的阅读,在C#中,const
和static readonly
都会在程序执行期间使值不可更改。
但是,const
应该使用不太可能改变的数量(例如pi,地球半径,每加仑一窝等)。
另一方面,static readonly
应该与当前不变但将来可能/将要改变的值一起使用(例如软件版本,算法中的乘数等)。
我做对了吗?
答案 0 :(得分:32)
我不知道你的第二个项目(我可能会使用常量来表示软件版本或算法...常量)但两者之间存在一个关键区别:const
只能保存基本类型等作为string
,bool
或数字类型。 static readonly
可以容纳任何对象。因此,例如,我经常使用static readonly
来存储Bitmap
个对象等资源。那些不能是const
。