C#中任意代码块(通过花括号)的实际用途是什么

时间:2011-07-07 05:31:29

标签: c# switch-statement curly-braces paradigms

我看过switch语句的一个例子,其中每个case块被大括号括起来,如下所示:

switch (itemType)
{
    case ItemType.TV:
    {
        String message = Messages.GetMessage(itemType);
        Console.WriteLine(message);
        break;
    }
    case ItemType.Computer:
    {
        XPMessage message = XPMessage.Next();
        if(message.Data == "XC12")
            message.IsValid = true;

        break;
    }
    case ItemType.WashingMachine:
    {
        String message = "Washing machines are so cool.";
        Messages.SendMessage(message, itemType);
        break;
    }
    default:
    {
        break;
    }
}

我所知道的唯一好处是限制声明范围(见例)。

但是,我想知道是否还有其他良好用途用于在这种代码块中分离代码的某些部分(这里我的意思是不必在switch语句中)。

何时以及如何使用它,如果不使用 - 为什么不使用?

此外,使用这些代码块有什么缺点吗?

2 个答案:

答案 0 :(得分:4)

正如您所说,声明范围是其中之一,也是可读性。有些人认为看到括号更容易,而不是在看到断言之前必须继续前进。这似乎是个人偏好。在这种情况下,它是为了确定范围而完成的,因为并非所有语句都使用相同的数据类型。

答案 1 :(得分:2)

这只是一种风格化的东西,有些人喜欢可读性/空白区域,而不是为了范围目的。

我不知道其他任何好处。