.net - 在 .NET 中为变量赋值的更有效方法是什么?

标签 .net performance

这是我一直想知道的事情,但从来没有费心去分析。

将值分配给临时变量是否比继续使用该值更有效。一个例子可能更清楚:

string s = reader.GetItem[0].ToString();
someClass.SomeField  = s;
someOtherClass.someField = s;

或者
someClass.SomeField  = reader.GetItem[0].ToString();
someOtherClass.someField = reader.GetItem[0].ToString();

我最初的想法是,上面的示例会更有效,因为它不必访问 Item 集合或调用 ToString。

有兴趣听听其他人的想法,或者以任何一种方式给出明确的答案。

最佳答案

编译器无法知道右侧的表达式是否有副作用,因此如果您对它进行两次编码,它必须重新评估它。因此,第一个更有效,因为它不会重新执行 GetItem 和 ToString 调用。

因此,如果您的程序员知道这些调用是纯/幂等的,那么您应该以第一种方式编写代码。

关于.net - 在 .NET 中为变量赋值的更有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/241994/

相关文章:

c# - FileSystemWatcher 更改事件(对于 "LastWrite")是不可靠的

c# - RavenDB 读取性能

c# - 为什么第二个 for 循环总是比第一个循环执行得更快?

c# - 进程 WaitForExit 不等待

c# - 哪种是为应用程序编写日志的最基于性能的方法

python - 使带有矩阵切片的循环更加高效

python - Numpy 性能差异取决于数值

c# - 转换 'compile-time' 类型最快的方法是什么?

.net - CompositionBatch : AddPart vs AddExport

c# - 如何去除 ToolStrip Winforms 控件一角的这种奇怪的视觉伪像?