0

在 .NET 中,如果我定义一个常量(比如类中的私有常量),引用该常量会导致该值在内存中重复,无论它被引用,还是 .NET 只是使用指向常量存储位置的指针,与使用任何普通变量一样吗?

4

2 回答 2

1

这取决于您指的是哪种内存:常量不会在数据内存中复制,但它将成为嵌入在编译的 IL 代码中的代码内存的一部分。

于 2013-01-12T18:43:58.910 回答
1

它包含在 IL 中(即“重复”)。另一种方法是使用readonly关键字。

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

于 2013-01-12T18:44:10.087 回答