这是一个简单的问题,我不敢相信我之前没有想过阅读它......但我似乎无法找到正确的搜索词来找到答案,所以请耐心等待:
如果我有 60 个不同的 if 语句,请将其分布在整个类(class)的多个方法中,如下所示:
if(myVar == 0.0f)
yaddayadda
if(myOtherVar == 0.0f)
yaddayadda
if(someVar == 0.0f || someOtherVar == 0.0f)
yaddayadda
...那些 0.0f 是否在每次使用时都会被放入内存并随后进行 GC?或者它们存储在编译后的代码中?我最好定义如下内容:
const float zero = 0.0f;
...然后用它来代替?如果是这样,从 CPU 周期来看,从 const 获取值是否比直接将常量保留在 if 语句中更昂贵?
我问,因为我可以看到decimal实际上有一个decimal.Zero常量,但float和double都没有。
最佳答案
这没有任何区别。编译后的版本是相同的。
看看design guidlines :
The compiler burns the values of const fields directly into calling code. Therefore, const values can never be changed without the risk of breaking compatibility.
关于c# - 重复的 if 语句常量是 "reused"吗? C# .NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44531120/