C# 财产存取的性能

C# 财产存取的性能,c#,properties,C#,Properties,在我的公司里,我们听取了关于绩效问题的简报。其中提到的一点是属性的访问,因为大多数属性都是从数据库中检索的。因此,查询对象本身可能会导致对底层数据库的昂贵调用 现在我想知道以下两种说法是否有区别(至少考虑性能) 及 我想前者是后者的一种快捷方式,因此也会导致对属性的两个查询,这是真的吗 谢谢你第一个示例只访问属性的get一次,第二个示例访问两次 现在,如果get每次都执行DB调用,那么第一个肯定更好 在LinqPad中测试时,第一个表达式将只计算一次SomeProperty,而后者将计算两次 所

在我的公司里,我们听取了关于绩效问题的简报。其中提到的一点是属性的访问,因为大多数属性都是从数据库中检索的。因此,查询对象本身可能会导致对底层数据库的昂贵调用

现在我想知道以下两种说法是否有区别(至少考虑性能)

我想前者是后者的一种快捷方式,因此也会导致对属性的两个查询,这是真的吗


谢谢你

第一个示例只访问属性的
get
一次,第二个示例访问两次

现在,如果
get
每次都执行DB调用,那么第一个肯定更好


在LinqPad中测试时,第一个表达式将只计算一次
SomeProperty
,而后者将计算两次

所以答案取决于房产的价格。一般来说,房产应该便宜。如果您有一段时间需要返回的属性,则应该考虑将其重构为方法。
如果您有一个更具体的问题,您可能会得到一个具体的答案。

这取决于属性是否支持延迟加载,否?第一个表达式将只计算
SomeProperty
一次,而后者将计算两次。所以答案取决于房子有多贵。啊,我明白了。。。所以我的假设是错误的。谢天谢地,对我来说更好的是,问题不在于房产本身的表现,而在于这两个机会中哪一个做得更少。我得到了答案,谢谢
MyPropertyValue value = myObject.SomeProperty ?? ...;
MyPropertyValue value = (myObject.SomeProperty != null) ? 
    myObject.SomeProperty : 
    ...