C#编译器是否会通过将var转换为const来优化此代码?

时间:2016-09-26 11:25:18

标签: c# .net

假设我有这个功能:

secureSecret

显然上面的const可以是const,我是否应该将其更改为{{1}},或者编译器是否足够聪明才能知道这一点?

1 个答案:

答案 0 :(得分:5)

如果查看生成的IL,可以看到编译器没有创建新字符串,只需调用ldstr

IL_0001:  ldstr       "a secret string"

编译器非常聪明,可以将这个常量字符串“烘焙”到您正在创建的生成的DLL /可执行文件中。

话虽如此,使用const传达了作者的意图,并增加了代码的清晰度并增强了IMO的可维护性。稍后它将允许您更轻松地重构这些“神奇”字符串,而不是在代码库中随处乱扔它们。