假设我有这个功能:
secureSecret
显然上面的const
可以是const
,我是否应该将其更改为{{1}},或者编译器是否足够聪明才能知道这一点?
答案 0 :(得分:5)
如果查看生成的IL,可以看到编译器没有创建新字符串,只需调用ldstr
:
IL_0001: ldstr "a secret string"
编译器非常聪明,可以将这个常量字符串“烘焙”到您正在创建的生成的DLL /可执行文件中。
话虽如此,使用const
传达了作者的意图,并增加了代码的清晰度并增强了IMO的可维护性。稍后它将允许您更轻松地重构这些“神奇”字符串,而不是在代码库中随处乱扔它们。