只读字段的效率低下

时间:2015-12-29 12:36:43

标签: c#

今天早些时候我正在做一些调查并发现了这篇文章:

http://codeblog.jonskeet.uk/2014/07/16/micro-optimization-the-surprising-inefficiency-of-readonly-fields/

哪些说明只读字段实际上是低效的,即使你必须从微观优化的角度来看。

还有其他研究证实这一点吗? 我们应该使用只读字段还是有替代方法可以让我们在不损失运行效率的情况下实现相同的结果?

3 个答案:

答案 0 :(得分:9)

  

我们应该使用只读字段

吗?

是。

因为它为我们的代码添加了自我文档和自我验证。表达字段意图的好处远远超过任何(丢失)微优化。

答案 1 :(得分:1)

  

c#“readonly”效率真的很低吗?

这取决于你关心的效率。

通常花费在维护上的时间是关注的问题。

如果您希望以纳秒或高复杂度情况改进代码,可以选择较低级别的语言。因为面向对象首先是为了可维护性,我认为。

尝试assembly :)

答案 2 :(得分:0)

  

我们应该使用只读字段

吗?

用Jon Skeet的话说,评价最高的SO海报,以及你链接的帖子

  

这不是我一般建议的优化。大多数代码确实不需要对此进行微观优化......

Jon说,让那里有readonly个字段。

  

是否有一种替代方案可以让我们在不损失运行效率的情况下实现相同的结果?

虽然这与readonly字段不同,但另一个类似选项是使用仅具有get访问者且没有set访问者的属性。这将 NOT 允许您在构造期间设置一个值(就像您可以使用只读字段),但之后仍然无法修改该值。如果在内部将属性设置为类是可以接受的,那么您还可以拥有private set访问者。