在.NET中,如果我定义一个常量(比如一个类中的私有常量),将引用该常量会导致值在内存中重复引用,或者.NET只使用指针指向常量是否存储,与使用任何正常变量相同?
答案 0 :(得分:1)
这取决于你的意思是什么类型的内存:常量不会在 data 内存中复制,但它将成为嵌入在 data 内存中的代码内存的一部分编译IL代码。
答案 1 :(得分:1)
将其并入IL中(即“重复”)。另一种方法是使用 readonly 关键字。
请注意,这是使公共 const 非常危险的原因。错误修复版本可能会更改该值,但使用const的任何其他程序集仍会使用旧值。只有声明常量是内部的或私有的。使用 readonly 进行公开声明。除非它是一个“显而易见的常数”,需要改变宇宙的结构。像Math.Pi