在最近的一次代码审查中,一位同事建议,对于具有 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/