【问题标题】:Use var operator instead of class type [duplicate]使用 var 运算符而不是类类型 [重复]
【发布时间】:2011-04-16 15:04:56
【问题描述】:

可能重复:
Use of var keyword in C#

我在 Visual Studio 中使用 resharper。每次我创建类实例时,resharper 都建议我使用 var 而不是确切的类类型。为什么使用 var 运算符更合适?

【问题讨论】:

  • 我注意到“var”不是运算符。它是一个局部变量类型说明符

标签: c# resharper


【解决方案1】:

ReSharper 建议您通过 context action 使用 var。

ReSharper 中的上下文操作(通常由铅笔图标指定)与 IntelliJ IDEA 中的意图操作非常相似,如果您愿意,您可以使用它,但这并不是强制性的。这与专门用于修复 ReSharper 发现的代码问题的 quick-fix(黄色或红色灯泡)相反。

当 ReSharper 用户看到 ReSharper 建议使用 var,然后(一旦您接受该建议)再次建议使用显式类型说明符时,ReSharper 用户一次又一次地感到震惊。但考虑到上下文动作的性质,像这样拥有一对相反的上下文动作是完全可以的,ReSharper 有很多这样的动作。

如果您不希望 ReSharper 显示此特定上下文操作,可以在 ReSharper > 选项 > [语言] > 上下文操作中将其关闭

【讨论】:

  • 顺便说一句,在不同场景中使用或不使用 var 是您可以使用 ReSharper 的代码清理以批处理模式强制执行的操作。
  • 创建自定义代码清理配置文件,将“局部变量声明样式”设置为“仅当初始化程序具有类型使用时使用'var'”,并将配置文件应用于自定义选择。详情请见jetbrains.com/resharper/webhelp/…
【解决方案2】:

对于初学者来说,重复更少。你更喜欢哪一个:

IDictionary<string, object> foo = new SortedDictionary<string, object>();

var foo = new SortedDictionary<string, object>();

就个人而言,我发现后者更具可读性。

【讨论】:

  • 是的,当使用构造函数时。但是 var foo = SomeFunction(someparameter);不是很可读。我更喜欢以前的。
猜你喜欢
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2018-10-19
相关资源
最近更新 更多