首页 > 解决方案 > 如何在这里实现开关而不是 if 和 else if ?

问题描述

我正在使用 if/else 语句来检查单击了哪个单选按钮。如何使用 switch 语句而不是 if/else。

else if (CBLeather.Checked && CBComputerNav.Checked && !CBStereo.Checked) {
    accessories = Accessories.LeatherAndNavigation;
} else if (CBComputerNav.Checked && CBLeather.Checked && CBStereo.Checked) {
    accessories = Accessories.All;
} else {
    accessories = Accessories.None;
}

标签: c#switch-statement

解决方案


我认为你不能把 switch case 放在这里,因为你有多个代码分支条件。

您可以从这些条件中提取方法,然后在 if 块中调用它们,例如:

private bool IsLeatherAndNavigation()
{
   return CBLeather.Checked && CBComputerNav.Checked && !CBStereo.Checked;
}

并使用:

if (IsLeatherAndNavigation()) 
{
   accessories = Accessories.LeatherAndNavigation;
}

并且可以在需要的地方重复使用,而不是将重复的 if 条件放在类中的任何地方。


推荐阅读