如何在这里实现开关,而不是if和else if?

时间:2019-11-06 06:43:19

标签: c# switch-statement

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

private void ttlRain(double[] array) {

2 个答案:

答案 0 :(得分:2)

我认为您不能在此处放置开关盒,因为您有多个分支代码的条件。

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

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

并使用:

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

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

答案 1 :(得分:0)

尽管您的用例不是用于switch语句的,但是有一种疯狂的方式:)

switch (0)
{
    case 0 when (CBLeather.Checked && CBComputerNav.Checked && !CBStereo.Checked):
        accessories = Accessories.LeatherAndNavigation;
        break;
    case 0 when (CBComputerNav.Checked && CBLeather.Checked && CBStereo.Checked):
        accessories = Accessories.All;
        break;
    default:
        accessories = Accessories.None;
        break;
}

同样,它可行,但不建议!