一直调用 属性 或将值赋给变量并使用它

Call a property all the times or assign the value to a variable and use it

考虑以下 class -

Class A 
{
   CustomObject propertyA {get;set;}
}

在程序的一个方法中,通过 class像这样的对象使用 propertyA -

void Main()
 {
   A a= new A();
   // use of propertyA
   a.PropertyA *****
   a.PropertyA *****
   a.Property.******
 }

如果先将 a.properyA 的值赋给一个变量,然后在所有地方使用该变量,是否会提高程序的性能,或者它只会提高代码的可读性。下面给出的是代码 -

void Main()
 {
   A a= new A();
   var propertyA = a.PropertyA; 
   // use of propertyA
   propertyA *****
   propertyA *****
   propertyA.******
 }

尽管在我的测试用例中添加了两条额外的指令来处理额外的 (在我看来是不必要的)属性.

也就是说,这很可能是过早的优化,当然不能保证性能得到改善。无法保证 CLR 或 JITter 不会优化分配。

您最好的经验法则是编写可维护、可读的代码,并且只有在您注意到性能问题时才担心这些类型的优化。在大多数情况下,编译器或抖动将能够比您开始时更好地进行优化。