Ben*_*Ben 2 c c# java scope curly-braces
我发现自己经常限制范围.我发现它使代码更清晰,并允许我更容易地重用变量.这在C中特别方便,其中变量必须在新范围的开头声明.
这是我的意思的一个例子.
{
int h = 0;
foreach (var item in photos)
{
buffer = t.NewRow();
h = item.IndexOf("\\x\\");
buffer["name"] = item.Substring(h, item.Length - h);
t.Rows.Add(buffer);
}
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我限制了h的范围,而没有在每次迭代中初始化它.
但我没有看到很多其他开发人员经常这样做.这是为什么?这样做有不利之处吗?
那么,在这种情况下,你要指定在每次迭代新值反正,不使用"老"的价值-所以我会使用:
foreach (var item in photos)
{
buffer = t.NewRow();
int h = item.IndexOf("\\x\\");
buffer["name"] = item.Substring(h, item.Length - h);
t.Rows.Add(buffer);
}
Run Code Online (Sandbox Code Playgroud)
我发现,如果我这样做的积极,我可以(在合理范围内,当然)我没有在一个范围问题的方式很多 - 如果我这样做,这可能意味着该方法是太长,我应该重构无论如何.
我敢说它可以在老C风格有益的 - 但是当我在写C#,我认为没有理由做的事情,在C,但是不会提高我的C#:)