C#:重构方法以显示适当的groupbox并隐藏其他方法的更好方法?

C#:重构方法以显示适当的groupbox并隐藏其他方法的更好方法?,c#,C#,有没有更好的方法来重构以下方法,其目的是确保适当的groupbox与其他groupbox分开显示,就像它们在列表中循环一样?是否有可能将这一切重构为一个单独的if语句+“没有其他关键字” 编辑:我指的是如何在一条语句中重构以显示适当的groupbox,而不使用其他语句。也许是一种使用&、| |等运算符的方法。我可能会让方法保持原样。您可以将所有这些操作压缩到一行中,但该方法的意图并不那么清楚。我认为这样做很好,再多的重构也不能让它变得更简单。如果你在一个集合中有你的分组框(即只需将grpSoun

有没有更好的方法来重构以下方法,其目的是确保适当的groupbox与其他groupbox分开显示,就像它们在列表中循环一样?是否有可能将这一切重构为一个单独的if语句+“没有其他关键字”


编辑:我指的是如何在一条语句中重构以显示适当的groupbox,而不使用其他语句。也许是一种使用&、| |等运算符的方法。

我可能会让方法保持原样。您可以将所有这些操作压缩到一行中,但该方法的意图并不那么清楚。我认为这样做很好,再多的重构也不能让它变得更简单。

如果你在一个集合中有你的分组框(即只需将grpSounds、grpAlerts、GRPFilter添加到列表中),你可以做:

void DisplayGroupBox(GroupBox groupControlYouWantToDisplay)
{
    foreach(var box in listControls.Where(gb => gb != groupControlYouWantToDisplay)
       box.Visible = false;
    groupControlYouWantToDisplay.Visible = true;
}

你应该解释你想做什么。我猜您有三个GroupBox,并且您希望一次只显示其中一个,但这只是一个猜测。
void DisplayGroupBox(GroupBox groupControlYouWantToDisplay)
{
    foreach(var box in listControls.Where(gb => gb != groupControlYouWantToDisplay)
       box.Visible = false;
    groupControlYouWantToDisplay.Visible = true;
}