使用 var 运算符而不是类类型 [重复]
Posted
技术标签:
【中文标题】使用 var 运算符而不是类类型 [重复]【英文标题】:Use var operator instead of class type [duplicate] 【发布时间】:2011-04-16 15:04:56 【问题描述】:可能重复:Use of var keyword in C#
我在 Visual Studio 中使用 resharper。每次我创建类实例时,resharper 都建议我使用 var 而不是确切的类类型。为什么使用 var 运算符更合适?
【问题讨论】:
我注意到“var”不是运算符。它是一个局部变量类型说明符。 【参考方案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);不是很可读。我更喜欢以前的。以上是关于使用 var 运算符而不是类类型 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
C# 如何检查空值。 (值为空)或(空 == 值)。我们可以使用`is`运算符而不是==运算符[重复]
C#如何检查null。 (value为null)或(null == value)。我们可以使用`is`运算符而不是==运算符[重复]