[英]Apply one action to multiple objects C#
我有不同的对象:6 个按钮、列表框和 5 个标签,这些名称就像 lblHum、lblCo2 ......
我需要一键显示或隐藏它们。
是否可以(不将对象放在面板或组框中)在 1 种方法中为所有对象应用例如Hide
操作,而不为每个对象指定隐藏? 像private void(List<objects>,action)
你可以这样写:
public void HideAll(params Control[] controls)
{
foreach(var control in controls) control.Hide();
}
像这样称呼它:
HideAll(lblHum, lblCo2, etc);
或者更灵活的东西:
public void GroupAction(Action<Control> action, params Control[] controls)
{
foreach(var control in controls) action(control);
}
然后这样称呼它:
GroupAction(c => c.Hide(), lblHum, lblCo2, etc);
但是,在这两种情况下,集合仍然存在。 你只是用一种方法隐藏它。 而且由于该方法相当简单,因此我不确定您是否比将集合直接放入您的代码中获得了太多价值。 也就是说,您可以将列表作为 class 表单的成员,并在表单初始化时添加控件。 然后,您可以随时循环遍历列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.