如果在切换方法中,要求恒定值

时间:2017-01-07 18:03:28

标签: c# wpf if-statement switch-statement

我在使用此代码找到常量值时遇到问题:

var size = q.textBoxNumberOfEmployees.Text;

        switch (size)
        {
            case:
                if (int.Parse(size) > 5 && int.Parse(size) < 15)
                {
                    Rect1.Height = Rect1.ActualHeight - 10;
                    Rect1.Width = Rect1.ActualWidth - 5;
                }
                break;
        }

任何想法?记录中应该有多个案例!

2 个答案:

答案 0 :(得分:1)

C#6中的案例值必须是一个常数值,不会发生变化。如果您想要与case语句具有相同的效果,请考虑多个if / if else语句而不是switch。

var size = q.textBoxNumberOfEmployees.Text;

if (int.Parse(size) > 5 && int.Parse(size) < 15)
{
    Rect1.Height = Rect1.ActualHeight - 10;
    Rect1.Width = Rect1.ActualWidth - 5;
}

以上是您的代码的有效版本。您还可以添加与case语句类似的其他if / else语句。

if (int.Parse(size) > 5 && int.Parse(size) < 15)
{
    Rect1.Height = Rect1.ActualHeight - 10;
    Rect1.Width = Rect1.ActualWidth - 5;
}
else if(some other condition)
{
    ...
}
else if(some other condition again)
{
    ...
}
else
{
    //if no other conditions are satisfied, this gets executed.
    //it's like the default case in a switch statement
}

答案 1 :(得分:0)

您必须分配案例值case "foo":case 15: