C# 如何以干净、恰当的方式缩短长参数列表

C# 如何以干净、恰当的方式缩短长参数列表,c#,winforms,C#,Winforms,这是我的密码 public static class ButtonProperties { public static void _ButtonProperties(Button btn_dashboard, Button btn_products, Button btn_supplier, Button btn_customer, Button btn_sales, Button btn_inventory, Button btn_settings) { btn

这是我的密码

public static class ButtonProperties
{
    public static void _ButtonProperties(Button btn_dashboard, Button btn_products, Button btn_supplier, Button btn_customer, Button btn_sales, Button btn_inventory, Button btn_settings)
    {
        btn_dashboard.FlatStyle = FlatStyle.Flat;
        btn_dashboard.FlatAppearance.BorderSize = 0;
        btn_products.FlatStyle = FlatStyle.Flat;
        btn_products.FlatAppearance.BorderSize = 0;
        btn_supplier.FlatStyle = FlatStyle.Flat;
        btn_supplier.FlatAppearance.BorderSize = 0;
        btn_customer.FlatStyle = FlatStyle.Flat;
        btn_customer.FlatAppearance.BorderSize = 0;
        btn_sales.FlatStyle = FlatStyle.Flat;
        btn_sales.FlatAppearance.BorderSize = 0;
        btn_inventory.FlatStyle = FlatStyle.Flat;
        btn_inventory.FlatAppearance.BorderSize = 0;
        btn_settings.FlatStyle = FlatStyle.Flat;
        btn_settings.FlatAppearance.BorderSize = 0;
    }
}
正如你所看到的,这需要太多的参数,我想把它缩短


您可以创建一个列表,而不是固定的param早午餐

public static void SetButtonProperties(List<Button> buttons){
    foreach(var button in buttons){
        button.FlatStyle = FlatStyle.Flat;
        button.FlatAppearance.BorderSize = 0;
    }
}
publicstaticvoidsetbuttonproperties(列表按钮){
foreach(按钮中的var按钮){
button.FlatStyle=FlatStyle.Flat;
button.FlatAppearance.BorderSize=0;
}
}
称之为:

 SetButtonProperties(new List<Button>{ btn_dashboard, btn_products, btn_supplier, ... })
SetButtonProperties(新列表{btn_仪表板、btn_产品、btn_供应商,…})

既然您对每个按钮都做了相同的操作,为什么不传递一个列表呢

public static void _ButtonProperties(List<Button> buttons)
{
    foreach (var button in buttons)
    {
         button.FlatAppearance.BorderSize = 0;
         button.FlatStyle = FlatStyle.Flat;
    }
}
publicstaticvoid\u按钮属性(列表按钮)
{
foreach(按钮中的var按钮)
{
button.FlatAppearance.BorderSize=0;
button.FlatStyle=FlatStyle.Flat;
}
}
您可以通过以下方式完成:

现在,您可以传递单个按钮、多个按钮(逗号分隔)甚至一个
按钮[]

例如:

ButtonProperties._ButtonProperties(btn_dashboard, btn_products);

只需使用一个列表?你不想让所有的
都是静态的
,这不是你使用像
C
这样的操作语言的原因。这样,您的整个应用程序只能有一个
按钮属性
@TimSchmelter我注意到,谢谢您,我在这里使用的是static,所以我不需要创建新的instance@Anonymous堆栈溢出不是一个论坛。我们不会修改标题来表示问题已经得到了回答。如果您勾选了一个问题,则会回答一个问题。@camiloterevinah,注意到,先生,谢谢您纠正我:)您应该显示这是如何命名的,这就是为什么这是一个比其他答案更好的答案。这非常简洁,因为它不需要列表。我还建议OP调用此方法
SetFlatProperties()
,而不是
\u ButtonProperties()
@Julo在这里尽可能多地修复答案(并且相关)。显示如何正确编写代码是非常相关的。@Anonymous,Dashboard似乎不相关。如果函数将按钮属性设置为无边框的平面。该名称应与该名称相关。我会选择“SetButtonPropertiesFlat”或“SetButtonFlat”。所以,只要读一下这个名字,我就对这个功能有了一个完整的了解。我真的不想,我希望我有更多关于这些按钮的信息,以及是什么使它们有资格重置。或者给“按钮属性”起个更好的名字
ButtonProperties._ButtonProperties(btn_dashboard, btn_products);