代码之家  ›  专栏  ›  技术社区  ›  Simon Linder

使用var或不使用var[duplicate]

c#
  •  17
  • Simon Linder  · 技术社区  · 14 年前

    可能重复:
    C# 'var' vs specific type performance


    我最近看到了使用 var 很多。

    var myString = GetAnyString();
    var myInstance = GetClass();
    

    而不是

    string myString = GetAnyString();
    MyClass myInstance = GetClass();
    

    除了可读性(我认为 风险价值 不太可读),使用它有什么优点和/或缺点吗?表演怎么样

    3 回复  |  直到 8 年前
        1
  •  13
  •   Aurelien Ribon    14 年前

    var被具有正确类型的编译器替换,因此除了很小的编译时间开销(veeeeeeery small)外,运行时性能不会受到影响。

    • 变量实例化: object myVar = new object();

    • 变量传播: var myVar = anotherVar.getComplexObject();

    另外,当有非常复杂的类型实例化时,您可能会尝试使用它们,例如:

    var myDict = new Dictionary<string, List<Tuple<string, object>>>();
    

    在这里,它确实提高了可读性。

        2
  •  21
  •   Andrew Bezzub    14 年前

    这是主观的,但我不喜欢使用vars。至于我,它们并不能提高可读性。

    var 用法如下:

    风险价值 当完全清楚声明的变量类型时:

    Dictionary<string, Dictionary<string, string>> varOfSomeLongType = new Dictionary<string, Dictionary<string, string>>();
    

    或者在声明匿名类型的变量时:

    var linqResult = from element in SomeCollection
                     select new { element.A, element.B }
    
        3
  •  4
  •   Mark Byers    14 年前

    优点:打字少。

    我部分同意这一点。

    当你有 var s = foo(); 而不是 string s = foo;

    表演怎么样