Resharper:vars

CSh*_*Atl 20 .net c# resharper

为什么Resharper希望您将大多数变量更改为var类型而不是代码中的实际类型?

Jon*_*eet 31

这只是一个选择.你可以禁用它:

ReSharper - >选项 - >代码检查 - >检查严重性 - >代码冗余 - >尽可能使用'var'关键字:将其更改为"不显示"

还有上下文(灯泡)选项,它将带您进入每个方向 - 这是在ReSharper - >选项 - >语言 - > C# - >上下文操作 - >"用'var'替换显式类型声明"

  • 问题是"为什么"? (9认同)
  • 绝对.我喜欢它.再说一次,对于我作为MVP,许可价格是0美元,所以我有偏见;) (4认同)
  • 使用ReSharper 6,我在ReSharper>选项>代码检查>检查严重性>语言使用机会>可能的情况下使用'var'关键字.将其设置为"不显示". (3认同)

小智 21

我看了哈迪哈里里的一段视频,他在那里展示了Resharper 6.x. 他的推理是,如果你强迫用户使用"var",你实际上是强迫他以更有意义的方式命名变量,这样所有的名字都是可读的并且更有意义.


Dav*_*ult 6

默认情况下,它将为此类型的"绿色波浪形"声明:

Person p = new Person();
^^^^^^
Run Code Online (Sandbox Code Playgroud)

因为重复.

当可以推断时,它还会建议(小的绿色下划线)变量:

Person p = repository.GetPerson(1);
¯¯¯
Run Code Online (Sandbox Code Playgroud)

在这种情况下,由于GetPerson方法的返回类型,它可以被推测.

正如Jon Skeet所述,您可以在resharper的选项中禁用这些建议.


Kyl*_*est 5

回答你的问题...因为JetBrains的某个人认为这是"首选"方式.

要改变它,请按照Jon的回答.此外,您还可以在ReSharper选项的"代码清理"部分下执行代码清理(我经常使用)时更改ReSharper的行为.设置为"使用显式类型".

  • 这是我唯一不喜欢Resharper的东西,开箱即用.IMO它促进了糟糕的编程......但是var vs!var是一场宗教战争......所以每个都是他们自己的. (3认同)