可能是重复问题:
const和readonly有什么区别?
根据我所了解的,在C#中,const
和static readonly
都可以使一个值在程序执行期间不可改变。
然而,const
应该与那些不太可能改变的量一起使用(例如圆周率、地球半径、加仑每升等)。
另一方面,static readonly
应该与当前是常量但将来可能会更改的值一起使用(例如软件版本、算法中的乘数等)。
我理解得对吗?
可能是重复问题:
const和readonly有什么区别?
根据我所了解的,在C#中,const
和static readonly
都可以使一个值在程序执行期间不可改变。
然而,const
应该与那些不太可能改变的量一起使用(例如圆周率、地球半径、加仑每升等)。
另一方面,static readonly
应该与当前是常量但将来可能会更改的值一起使用(例如软件版本、算法中的乘数等)。
我理解得对吗?
我不了解你的第二个条目(如果是软件版本或算法,我可能会使用常量…与常量)但两者之间有一个关键区别:const
只能保存基本类型,如 string
、bool
或数值类型。static readonly
可以保存任何对象。因此,例如,我经常使用static readonly
来存储像Bitmap
对象这样的资源。这些不能是const
。