切换案例或是否

时间:2012-09-29 07:55:47

标签: c# if-statement windows-ce

我有if..else这个长循环。任何人都可以帮助我知道“切换案例”是否更适合这个或“if..else”?

if (meals == null)
{
    bfast.Hide();
    lunch_rb.Hide();
    dinner_rb.Hide();
}
else if (meals != null)
{
    if (breakfast != null && lunch == null && dinner == null)
    {
        lunch_rb.Hide();
        dinner_rb.Hide();
    }
    if (breakfast == null && lunch != null && dinner == null)
    {
        bfast.Hide();
        dinner_rb.Hide();
    }
    if (breakfast == null && lunch == null && dinner != null)
    {
        bfast.Hide();
        lunch_rb.Hide();
    }
    if (breakfast != null && lunch != null && dinner == null)
    {
        dinner_rb.Hide();
    }
    if (breakfast != null && lunch == null && dinner != null)
    {
        lunch_rb.Hide();
    }
    if (lunch != null && breakfast == null && dinner != null)
    {
        bfast.Hide();
    }

我正在为Windows CE 5.0开发一个应用程序(如果这有帮助)

6 个答案:

答案 0 :(得分:10)

我认为在这种情况下更好的解决方案是:

if (breakfast == null)
  bfast.Hide();
if (lunch == null)
  lunch_rb.Hide();
if (dinner == null)
  dinner_rb.Hide();

答案 1 :(得分:6)

你可以尝试这样的事情,因为你有多个变量的条件,你需要制作表达式来传递它来切换,所以使用if如下所示可能会使它变得简单。

if (breakfast == null)
      bfast.Hide();

if (lunch == null)
      lunch_rb.Hide();

if (dinner == null)
      dinner_rb.Hide();

答案 2 :(得分:1)

对于这种特殊情况,如果 - 其他更好,因为你有复杂的条件,而且我认为切换案例是不可能的。

答案 3 :(得分:0)

对于这个问题,我认为if...else已经足够了。 switch...case无法处理如此复杂的情况。随意使用它。

答案 4 :(得分:0)

切换案例总是比if ...更好,因为它需要更少的输入,你的代码将更容易阅读和理解。我自己只是使用“else if”当我在考试中忘记了开关的风格!!! / p>

答案 5 :(得分:0)

ifswitch语句之间的效果水平差别不大。无论如何,你的代码是一堆乱七八糟的条件。考虑到Pigueiras的答案。像

这样的东西
bfast.Hide();
lunch_rb.Hide();
dinner_rb.Hide();
if (meals != null) {
  if (breakfast != null)
    bfast.Show();
  if (lunch =! null)
    lunch_rb.Show();
  if (dinner =! null)
    dinner_rb.Show();
}