【发布时间】:2010-12-10 23:36:25
【问题描述】:
今天,当我更改静态类中公开可见常量的值,然后用新编译的版本替换程序集的旧副本时,我有点惊讶。令人惊讶的是,引用程序集的现有程序没有获取常量的新值。也就是说,我没有重新编译可执行文件,而只是替换了那个程序集。
我的实验的完整描述在How constant is a constant?
我承认对这种行为感到非常惊讶。我明白发生了什么,但我不明白为什么。为什么不能在 JIT 时间而不是编译时间获取常量,是否有特定的技术原因?有没有这样做会破坏事情的情况?
【问题讨论】:
-
这是在太多书籍、博文中讨论过的行为,所以其实并不奇怪:)
-
@Lex:奇怪的是,我以前从未讨论过它。不过,我仍然想知道为什么。
-
我仍然不明白将它烘焙到 using 程序集中有什么好处。