0

我有以下一段代码,用于在执行测试类型 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,但是我不确定语法,感谢任何帮助,谢谢!

4

5 回答 5

3
if ((int)testType == 2)
{
       indmetaL.Visible = false;
       midmetaL.Visible = false;
       rinmetaL.Visible = false
       litmetaL.Visible = false;
}
于 2012-04-29T01:56:14.507 回答
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;
于 2012-04-29T02:01:27.150 回答
1

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

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

为什么省略花括号被认为是一种不好的做法?

于 2012-04-29T01:56:38.957 回答
1

使用花括号将多个语句组合成一个块;

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

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

于 2012-04-29T01:57:06.207 回答
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;
于 2012-04-29T02:30:45.717 回答