范围块的好处?

InB*_*een 7 c#

可能重复:
您何时使用代码块?

好吧,这可能是一个愚蠢的问题,我可能会遗漏一些明显的东西但是当我慢慢学习C#时,这已经让我唠叨了一段时间了.

以下代码显然编译得很好:

public void Foo()
{
    {
        int i = 1;
        i++;
    }

    {
        int i = 1;
        i--;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道{}块可以用于范围界定.问题是你为什么要这样做?这个功能解决了哪些问题?

我在使用它们时没有任何害处,除非它确实增加了一个更令人困惑的代码,因为与那些"绑定"流控制,迭代等相比,这些范围可能更容易被忽略.

Dev*_*rke 6

switch在您的变量声明可能变得混乱的语句中很有用:

令人困惑的代码:

switch (true)
{
    case true:
        var msg = "This is true.";
        var copy = msg;
        break;

    case false:
        msg = "This is false.";
        copy = msg;
        break;
}
Run Code Online (Sandbox Code Playgroud)

清除代码:

switch (true)
{
    case true:
    {
        var msg = "This is true.";
        var copy = msg;
        break;
    }

    case false:
    {
        var msg = "This is false.";
        var copy = msg;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)