winforms 将相同的值赋给具有相同类型的多个类变量

vpfxa7rd  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(113)

我有一些来自winforms的变量

buttonLink.BackColor = Color.Transparent;
buttonLink.FlatAppearance.MouseDownBackColor = Color.Transparent;
buttonLink.FlatAppearance.MouseOverBackColor = Color.Transparent;

每次写整个序列都有点太长了,所以我在想是否有可能像这样缩短它

buttonLink.(BackColor & FlatAppearance(MouseDownBackColor & MouseOverBackColor) = Color.Transparent

因为它确实简化了代码和重量,特别是在较大的项目中
我试着用()写,只是用&,但没有效果。有人有什么想法吗?

c0vxltue

c0vxltue1#

编写如下函数:

public void SetColor(Button button, Color color)
{
    button.BackColor = color;
    button.FlatAppearance.MouseDownBackColor = color;
    button.FlatAppearance.MouseOverBackColor = color;
}

然后像这样调用它:

SetColor(buttonLink, Color.Transparent);

在C中,$&是一个AND二元运算符,所以它不会像这样工作。
要修复您的问题,请尝试使其内联:

buttonLink.BackColor = buttonLink.FlatAppearance.MouseDownBackColor = buttonLink.FlatAppearance.MouseOverBackColor = Color.Transparent;

但它不是很漂亮。
你想写的东西在某些语言中是可能的,例如在VB中有With语句,它的工作原理与此类似,但我不知道C#中有这样的结构。

相关问题