考虑以下类 -
Class A
{
CustomObject propertyA {get;set;}
}
在程序的一个方法中,propertyA 是通过 classA 对象使用的,就像这样 -
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.******
}
最佳答案
虽然在我的测试用例中添加了两条额外的指令来处理额外的(在我的意见)属性(property)。
也就是说,这很可能是过早的优化,当然不能保证性能得到改善。无法保证 CLR 或 JITter 不会优化分配。
您最好的经验法则是编写可维护、可读的代码,并且只有在您发现性能问题时才担心这些类型的优化。在大多数情况下,编译器或抖动将能够比您开始时更好地进行优化。
关于c# - 一直调用属性或将值赋给变量并使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32599058/