财产访问性能
本文关键字:性能 访问 财产 | 更新日期: 2023-09-27 18:24:30
在我的公司内,我们得到了关于性能问题的简报。其中提到的一点是访问属性,因为大多数属性都是从数据库中检索的。因此,查询对象本身可能导致对底层数据库的昂贵调用。
现在我想知道以下两种说法之间是否有什么区别(至少考虑性能)
MyPropertyValue value = myObject.SomeProperty ?? ...;
和
MyPropertyValue value = (myObject.SomeProperty != null) ?
myObject.SomeProperty :
...
我想前者是后者的一种快捷方式,因此也会导致对属性的两个查询,这是真的吗?
感谢您的
第一个例子只访问属性的get
一次,第二个例子访问它两次。
现在,如果get
每次都进行DB调用,那么第一次肯定更好。
在LinqPad 中测试
第一个表达式将只计算SomeProperty
一次,而后者将计算两次。
所以答案取决于房产的价格。一般来说,房产应该是便宜的。如果您有一个需要一段时间才能返回的属性,则应该考虑将其重构为方法。
如果你有一个更具体的问题,你可能会得到一个具体的答案