2010-09-24 63 views
2

可能重复:
Use of var keyword in C#使用VAR运营商,而不是类类型

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

+2

我注意到,“VAR”是不是*运算符*。它是一个*局部变量类型说明符*。 – 2010-09-24 15:31:52

回答

1

对于初学者来说重复性较低。哪一个你更喜欢:

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

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

就个人而言,我觉得后者更具有可读性。

+2

是的,使用构造函数时。但是var foo = SomeFunction(someparameter);不太可读。我喜欢以前好多了。 – 2010-09-24 06:42:50

5

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

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

一次又一次ReSharper用户在看到ReSharper建议使用var时会惊呆,然后(只要您接受该建议)再次建议使用显式类型说明符。但是考虑到上下文动作的本质,拥有这种对立的上下文动作是完全正确的,而ReSharper有很多这样的动作。

如果你不想ReSharper的显示这个特定背景下的行动,你可以关闭它在ReSharper的>选项> [语言]>上下文行动

+0

顺便说一句,在不同场景中使用或不使用var是可以使用ReSharper的代码清理在批处理模式下强制执行的。 – gorohoroh 2010-09-26 10:51:21

+0

创建自定义代码清理配置文件,将“局部变量声明样式”设置为“仅在初始化程序具有类型用法时使用'var'”,然后将该配置文件应用于自定义选择。详情请参阅http://www.jetbrains.com/resharper/webhelp/Code_Cleanup__Creating_Custom_Profiles.html – gorohoroh 2010-09-26 10:52:49