【问题标题】:How do you use the var keyword? [duplicate]你如何使用 var 关键字? [复制]
【发布时间】:2009-04-25 00:02:40
【问题描述】:

复制

Use of var keyword in C#
C# - Do you use "var"?
Should I always favour implictly typed local variables in C# 3.0?

您是否愿意这样编写代码:

var myVar = new MyClass();

MyClass myVar = new MyClass();

我不反对在上面的示例中使用var 关键字;但是,在下面的代码中,我不喜欢使用var

var files = Files.GetFiles();

在这个例子中,files 是什么类型的变量并不明显。

您对使用var关键字的偏好是什么?

【问题讨论】:

  • 提问前请先看看相关帖子。已经有两个关于这个主题的非常好的社区 wiki 问题。

标签: c# c#-3.0


【解决方案1】:

我倾向于在我通过阅读源代码可以推断变量类型而无需导航到源代码中的其他位置的地方使用“var”。

例如,每当我新建一个对象时:

var c = new Customer();

或者调用返回类型明确的方法时:

var c = Customers.GetCustomerByID(5);

另外,'var'必须用于匿名类型:

var t = new { Key = "One", Value = 1 };

当然,我也将它与 LINQ 一起使用:

var q = from c in Customers
        where c.CustomerID == 5
        select c;

在上面的例子中,'q' 是 IQueryable 类型(假设客户是客户对象的枚举)。

还有“foreach”语句——请使用“var”:

foreach (var i in intArray) { /* use i */ }

我敢肯定,其他示例比比皆是 - 但这些涵盖了我最常见的用例。

【讨论】:

    【解决方案2】:

    如果在任何一种情况下都可以工作(不包括匿名类型情况),我会尝试使用任何能让代码在未来更容易理解的东西。有时这意味着如果使用范围很小或分配给的类型难以处理(例如,某种嵌套泛型),则使用 var 重复并增加混乱。我也倾向于在大多数人期望看到的地方使用 var(例如,作为 linq 查询的声明)。

    【讨论】:

      【解决方案3】:

      我认为最好只在创建新对象(使用new)和使用LINQ(当然)时使用var。这使得代码更容易理解,恕我直言。

      【讨论】:

        【解决方案4】:

        我可以在任何地方使用它。我认为它使代码更加干净和可读。 (我在开玩笑吗?我只是按照 resharper 告诉我的去做 :)

        this SO thread 上的更多内容。

        【讨论】:

          猜你喜欢
          • 2010-09-17
          • 2013-04-19
          • 1970-01-01
          • 1970-01-01
          • 2013-09-04
          • 2010-11-15
          • 2012-04-04
          • 2011-03-30
          相关资源
          最近更新 更多