一个方法中具有相同名称的多个变量

Vla*_*irs 5 c# naming-conventions

我喜欢变量命名正确但在某些情况下很难做到.

所以,如果我的对象实现,IDisposable那么我可以使用:

using (var whatever = new Whatever()) { //... }
Run Code Online (Sandbox Code Playgroud)

但这种情况很少见,所以我找到了另一种方法来处理它 - 匿名阻止(不确定它是如何正确调用的):

//...
{
    var whatever = new Whatever();
    //...
}
//...
if (condition)
{
    var whatever = new Whatever();
}
Run Code Online (Sandbox Code Playgroud)

这是一个好方法吗?是否有任何陷阱或普遍认为它会降低代码可读性?

p.s*_*w.g 4

基本上,如果编译器没有抱怨并且您的代码可读且易于理解,那么就没有问题。

例如:

foreach (var foo in foos)
{
   var task = new FooTask(foo);
   task.Run();
}
foreach (var bar in bars)
{
   var task = new BarTask(bar);
   task.Run();
}
Run Code Online (Sandbox Code Playgroud)

这实际上(在我看来)比

foreach (var foo in foos)
{
   var task1 = new FooTask(foo);
   task1.Run();
}
foreach (var bar in bars)
{
   var task2 = new BarTask(bar);
   task2.Run();
}
Run Code Online (Sandbox Code Playgroud)