c# - 在构造函数中将整数字段/属性分配为零

标签 c#

在最近的一次代码审查中,一位同事建议,对于具有 4 个 int 属性的类,在构造函数中将每个属性赋值为零会导致性能下降。

例如,

    public Example()
    {
        this.major = 0;
        this.minor = 0;
        this.revision = 0;
        this.build = 0;
    }

他的观点是,这是多余的,因为默认情况下它们将设置为零,并且您实际上通过两次执行相同的任务来引入开销。我的观点是,如果存在的话,性能损失可以忽略不计,而且这更具可读性(有多个构造函数),因为调用此构造函数后对象状态的意图非常清楚。

你怎么看?这里有值得关注的性能提升吗?

最佳答案

不,没有。编译器会优化掉这些操作;相同的任务不会执行两次。你的同事错了。

[根据一贯优秀的 Jon Skeet 的意见进行编辑]

编译器应该优化操作,但显然它们并没有完全优化;然而,优化增益完全可以忽略不计,分配如此明确的好处是好的。您的同事可能没有完全错,但他们专注于完全微不足道的优化。

关于c# - 在构造函数中将整数字段/属性分配为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4089468/

相关文章:

c# - 将 ASP.NET 中的图像大小调整为指定尺寸而不损失质量

c# - 当 iis 是主机时,wcf 应用程序上的 iis 是否调用了 Global.asax 的 Application_Start?

c# - ScrollViewer 本身的垂直偏移量与 PropertyChangedEventArgs 的垂直偏移量有什么区别

c# - 抛出了 'Microsoft.Online.Administration.Automation.MicrosoftOnlineException' 类型的异常

c# - 将可变参数作为另一个函数的参数的函数

c# - 使用 c# 和 sql 来滚动您自己的 wiki 有什么用?

c# - 实现 IDisposable 接口(interface)的目的是什么?

c# - DirectorySearch.PageSize = 2 不起作用

c# - 将变量添加到布局页面 MVC

c# - Unity中的简单事件系统