代码之家  ›  专栏  ›  技术社区  ›  stackoverflowuser

“var”关键字是否会妨碍代码的可读性?[关闭]

  •  5
  • stackoverflowuser  · 技术社区  · 15 年前

    我刚开始使用Resharper。它的一个特点是,它建议根据良好的编码实践对代码进行更改。

    它建议的更改之一是在赋值期间将变量类型更改为var。我不断地修改,现在代码到处都有var。不知怎么的,我觉得“var”关键字让代码有点难以理解。

    尽可能使用“var”是一个好的编码实践,还是最好坚持使用实际类型。(匿名类型除外,需要使用“var”)。

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Stefan Steinegger    14 年前

    这个 C# programming guide 建议在增强可读性时使用var,例如当类型明显、太复杂或根本不重要时。

    var关键字也很有用 当变量的特定类型 在键盘上打字很乏味,或者 是显而易见的,或者不加在 代码的可读性。一个例子 当VaR以这种方式有帮助时 具有嵌套的泛型类型,例如 用于组操作的。在 以下查询的类型 查询变量为 IEnumerable<IGrouping<string, Student>> . 只要你和其他人 谁必须维护你的代码明白 这个,使用没有问题 为了方便和 简洁。

    没有一般规则。在某些情况下,显式类型可能会增强可读性。

    实例:

    var x = new Thingy(); //type is obvious
    
    var x = dict.Where(x => x.Value > 3); // type is complex and not important
    
    Foo(GetValue(FromOverThere())); // type is implicit anyway
    
    // equivalent to:
    var fromOverThere = FromOverThere();
    var value = GetValue(fromOverThere)
    Foo(value);
    
    FooDocument doc = repository.Get(id); // glad to see the type here.
    
        2
  •  4
  •   Lasse Espeholt    15 年前

    我建议使用 var 当您有这样的代码时:

    var surelyAnXText = new XText(...);
    

    在这里,您总是可以知道我们要声明的变量的所需类型。但如果你有这样的东西:

    var whatIsThis = foo.Some_Method_Where_You_Cant_Tell_The_Return_Type_From_The_Name();
    
    推荐文章