两者之间是否存在巨大的性能差异:
if (this.chkSelectAll.Checked)
for (int i = 0; i < this.listBoxColumns.Items.Count; i++)
this.listBoxColumns.SetSelected(i, true);
else
for (int i = 0; i < this.listBoxColumns.Items.Count; i++)
this.listBoxColumns.SetSelected(i, false);
Run Code Online (Sandbox Code Playgroud)
与
for (int i = 0; i < this.listBoxColumns.Items.Count; i++)
this.listBoxColumns.SetSelected(i, this.chkSelectAll.Checked);
Run Code Online (Sandbox Code Playgroud)
哪一个是可取的.简洁的编码与性能提升?
Jon*_*eet 10
我不希望看到太多的性能差异,我肯定会选择后者,因为它更具可读性.(虽然我会把它括起来.)
很容易想象您可能需要更改循环的情况,并且在第一个示例中,您可能会意外地仅更改其中一个而不是两者.如果你真的想避免Checked在每次迭代中调用属性,你总是可以这样做:
bool checked = this.chkSelectAll.Checked;
for (int i = 0; i < this.listBoxColumns.Items.Count; i++)
{
this.listBoxColumns.SetSelected(i, checked);
}
Run Code Online (Sandbox Code Playgroud)
与以往一样,首先编写最易读的代码,并在为了性能而将设计/代码弯曲变形之前测量/分析任何性能差异.