gpt4 book ai didi

c# - 冗余设置控件属性的任何开销?

转载 作者:行者123 更新时间:2023-11-30 22:44:04 24 4
gpt4 key购买 nike

我正在处理很多看起来像这样的代码:

 if (btnLeftDock.BackColor != SystemColors.ButtonFace)
{
btnLeftDock.BackColor = SystemColors.ButtonFace;
}
if (btnRightDock.BackColor != SystemColors.ButtonFace)
{
btnRightDock.BackColor = SystemColors.ButtonFace;
}
if (btnTopDock.BackColor != SystemColors.ButtonFace)
{
btnTopDock.BackColor = SystemColors.ButtonFace;
}
if (btnBottomDock.BackColor != SystemColors.ButtonFace)
{
btnBottomDock.BackColor = SystemColors.ButtonFace;
}

我可以想象这样做的唯一原因是理论上有一些特定于 winforms 的开销来设置控件颜色,如下所示:

 btnLeftDock.BackColor = SystemColors.ButtonFace;
btnRightDock.BackColor = SystemColors.ButtonFace;
btnTopDock.BackColor = SystemColors.ButtonFace;
btnBottomDock.BackColor = SystemColors.ButtonFace;

我认为它更容易阅读,而且我看不出任何性能差异,但原始开发人员必须有一些理由。 (对吗?)

最佳答案

BackColor 属性有一些特别之处,它是一个环境属性。这意味着如果该属性从未被分配,那么控件的背景色将与父级的背景色值相同。

这是非常可取的,它提供了自动一致的背景颜色值。如果父级更改其 BackColor,则所有子控件也将其更改为相同的值。只要他们从未自己分配过它。

这可能让原作者有点瘫痪了。不过既然他用的是系统颜色,那测试应该就没必要了。我想。

关于c# - 冗余设置控件属性的任何开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3613242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com