【发布时间】:2013-04-06 09:46:27
【问题描述】:
为什么const 的用法在编译时被它们的值替换,但仍然包含在程序集中?至少这是 IL DASM 和 Reflector 所展示的。
目前我使用const 来定义许多幻数和字符串,以便更容易地更改代码而不影响运行时性能。
现在我知道这不会影响使用的内存,但它仍然会影响编译的程序集大小,这对于手机应用程序来说至关重要。
另一个缺点是其他人在查看反汇编代码时更容易理解幻数。
我真的很感兴趣为什么编译器(Mono 和 .NET)会这样做?
【问题讨论】:
-
我不同意上述重复的建议。这个问题比简单的
const与readonly比较要具体得多。 -
我同意 stakx 的不同意见。
标签: .net compilation constants