相关疑难解决方法(0)

你是否使用花括号进行额外的范围设计?

我的意思是除了在函数,类,if,while,switch,try-catch需要时使用它.

在我看到这个问题之前,我不知道可以这样做.

在上面的链接中,Eli提到"他们使用它来折叠代码的逻辑部分,这些逻辑部分不属于通常折叠起来的函数,类,循环等."

除了提到的那些之外还有什么其他用途?

使用花括号来限制变量的范围并仅在需要时扩展范围(在"需要访问"的基础上工作)是一个好主意吗?或者它真的很傻?

如何使用范围,以便您可以在不同的范围内使用相同的变量名称,但在相同的更大范围内?或者,重用相同的变量(如果你想使用相同的变量名)是更好的做法,并节省解除分配和分配(我想一些编译器可以对此进行优化?)?或者更好地使用不同的变量名称?

c++ java scope curly-braces

38
推荐指数
8
解决办法
9141
查看次数

什么时候在C#中使用没有语句的范围?

就在最近我发现你可以在C#中做到这一点:

{
    // google
    string url = "#";

    if ( value > 5 )
        url = "http://google.com";

    menu.Add( new MenuItem(url) );
}
{
    // cheese
    string url = "#"; // url has to be redefined again, 
                      // so it can't accidently leak into the new menu item

    if ( value > 45 )
        url = "http://cheese.com";

    menu.Add( new MenuItem(url) );
}
Run Code Online (Sandbox Code Playgroud)

而不是ie:

    string url = "#";

    // google
    if ( value > 5 )
        url = "http://google.com";

    menu.Add( new MenuItem(url) …
Run Code Online (Sandbox Code Playgroud)

c# syntax block

26
推荐指数
3
解决办法
1058
查看次数

范围块的好处?

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

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

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

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

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

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

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

c#

7
推荐指数
1
解决办法
134
查看次数

标签 统计

c# ×2

block ×1

c++ ×1

curly-braces ×1

java ×1

scope ×1

syntax ×1