【发布时间】:2014-07-16 01:50:22
【问题描述】:
在 C/C++ 编程中经常使用常量来生成更清晰的代码。有时也可能有优化的好处。但是,我想知道除了更具可读性的代码之外,在 C# 中将值声明为只读或 const 可以收集到什么好处。
假设我有以下 C# 代码:
public Double HalfPiSomething(Int32 input)
{
return input + (Math.PI / 2);
}
这是一个相当简单的例子,但是每次调用该方法时,我们将Math.PI 除以2,将其添加到输入中,然后将其返回到调用语句。
让我们使用该代码并在包含类的某处将Math.PI / 2 设为它自己的变量:
private Double _halfPi = Math.PI / 2;
public Double HalfPiSomething(Int32 input)
{
return input + _halfPi;
}
显然,将Math.PI / 2 的操作放在自己的变量中是一个好主意,就像基本的编码练习一样,特别是如果该值在类中的多个点中使用...这里不在这里,但是让我们只是假装。
最后,既然_halfPi 永远不会改变,那就让它成为const:
private const Double _halfPi = Math.PI / 2;
public Double HalfPiSomething(Int32 input)
{
return input + _halfPi;
}
我想知道的是,除了作为 C# 的良好编码实践和使代码更易于理解和更难出错之外,执行上述操作是否有好处(尤其是在性能方面)?该值是否在本地内存中停留的时间更长?
【问题讨论】:
标签: c# c++ performance optimization