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);