这是我一直想知道的事情,但从未打扰过.
为临时变量赋值是否更有效,而不是继续使用该值.一个例子可能更清楚:
string s = reader.GetItem[0].ToString();
someClass.SomeField = s;
someOtherClass.someField = s;
Run Code Online (Sandbox Code Playgroud)
要么
someClass.SomeField = reader.GetItem[0].ToString();
someOtherClass.someField = reader.GetItem[0].ToString();
Run Code Online (Sandbox Code Playgroud)
我最初的想法是顶级示例会更高效,因为它不必访问Item集合或调用ToString.
有兴趣听到其他人的想法,或任何方式的确定答案.
Bri*_*ian 15
编译器无法知道右侧的表达式是否有副作用,因此如果您对其进行两次编码,则必须重新评估它.因此,第一个更有效,因为它不会重新执行GetItem和ToString调用.
因此,如果您的程序员知道这些调用是纯/幂等的,那么您应该以第一种方式编写代码.