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

标签 c# naming-conventions

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

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

using (var whatever = new Whatever()) { //... }

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

//...
{
    var whatever = new Whatever();
    //...
}
//...
if (condition)
{
    var whatever = new Whatever();
}

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

最佳答案

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

例如:

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

这实际上(在我看来)比

更容易阅读
foreach (var foo in foos)
{
   var task1 = new FooTask(foo);
   task1.Run();
}
foreach (var bar in bars)
{
   var task2 = new BarTask(bar);
   task2.Run();
}

关于c# - 一个方法中具有相同名称的多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16922559/

相关文章:

objective-c - 启用/禁用或激活/停用的方法的命名约定

api - 类/接口(interface) "Default"实现的命名约定

naming-conventions - 原始数据类型应该大写吗?

c# - 为什么我在发送 SMTP 电子邮件时收到“"' 属性无法分配”?

c# - 在调试中为 SSL 配置 launchSettings.json - ASP.NET Core/Visual Studio Code

javascript - Javascript 函数名称以小写字母开头有好处吗?

c++ - C++ 中是否有变量和函数名称的标准命名约定?

c# - MVC 4 WebAPI 对不可为空类型的验证

C# 多个异步 HttpRequest 与一个回调

c# - 需要确定性算法以均匀分布的方式为给定路径生成资源域前缀