组合多个if语句

时间:2012-04-29 01:53:22

标签: c# if-statement visibility multiple-instances

我正在使用以下代码来设置一系列标签,以便在执行testtype 2时不可见

        if ((int)testType == 2)
            indmetaL.Visible = false;
        if ((int)testType == 2)
            midmetaL.Visible = false;
        if ((int)testType == 2)
            rinmetaL.Visible = false;
        if ((int)testType == 2)
            litmetaL.Visible = false;

我尝试过构建这样的语句:

 if ((int)testType == 2)
       indmetaL.Visible = false;
       midmetaL.Visible = false;
       rinmetaL.Visible = false
       litmetaL.Visible = false;

然而,当我做midmetaL时,rinmetaL和litmetaL在testtype 1期间保持不可见

我确信有一种方法可以在一行中将所有这些“可见”属性设置为false但是我不确定语法,感谢任何帮助,谢谢!

5 个答案:

答案 0 :(得分:3)

if ((int)testType == 2)
{
       indmetaL.Visible = false;
       midmetaL.Visible = false;
       rinmetaL.Visible = false
       litmetaL.Visible = false;
}

答案 1 :(得分:2)

使用花括号创建代码块:

if ((int)testType == 2)
{
   indmetaL.Visible = false;
   midmetaL.Visible = false;
   rinmetaL.Visible = false
   litmetaL.Visible = false;
}

或使用链分配:

if ((int)testType == 2)
   indmetaL.Visible = midmetaL.Visible = rinmetaL.Visible = litmetaL.Visible = false;

答案 2 :(得分:1)

您应该使用花括号为if定义statement block,否则只有第一行属于它。所以这有效:

if ((int)testType == 2)
{
    indmetaL.Visible = false;
    midmetaL.Visible = false;
    rinmetaL.Visible = false
    litmetaL.Visible = false;
}

Why is it considered a bad practice to omit curly braces?

答案 3 :(得分:1)

使用花括号将多个语句分组到一个块中;

if ((int) testType == 2)
{
    indmetaL.Visible = false;
    midmetaL.Visible = false;
    rinmetaL.Visible = false;
    litmetaL.Visible = false;
}

在C#中,if语句有条件地仅执行紧随其后的语句或块。因此,你需要花括号。其他流量控制语句也是如此,例如forwhile等。

答案 4 :(得分:0)

使用Switch语句。它们比if语句更快,因为它们直接跳转到正确的大小写。

switch((int)testType)
{
    case 2:
        indmetaL.Visible = false;
        midmetaL.Visible = false;
        rinmetaL.Visible = false;
        litmetaL.Visible = false;
    break;
}

或者如果你想要if语句,你可以在一行中写它而不用像这样的花括号

if((int)testType==2)
    indmetaL.Visible = midmetaL.Visible = rinmetaL.Visible = litmetaL.Visible = false;