当引用一个常量时,值是在内存中重复,还是像任何其他变量一样重复?

时间:2013-01-12 18:41:22

标签: .net constants

在.NET中,如果我定义一个常量(比如一个类中的私有常量),将引用该常量会导致值在内存中重复引用,或者.NET只使用指针指向常量是否存储,与使用任何正常变量相同?

2 个答案:

答案 0 :(得分:1)

这取决于你的意思是什么类型的内存:常量不会在 data 内存中复制,但它将成为嵌入在 data 内存中的代码内存的一部分编译IL代码。

答案 1 :(得分:1)

将其并入IL中(即“重复”)。另一种方法是使用 readonly 关键字。

请注意,这是使公共 const 非常危险的原因。错误修复版本可能会更改该值,但使用const的任何其他程序集仍会使用旧值。只有声明常量是内部的或私有的。使用 readonly 进行公开声明。除非它是一个“显而易见的常数”,需要改变宇宙的结构。像Math.Pi