Resharper:vars

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

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

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

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

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

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

Person p = new Person(); ^^^^^^ 

因为重复。

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

 Person p = repository.GetPerson(1); ¯¯¯ 

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

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

回答你的问题…因为JetBrains的某个人认为这是“首选”方式。

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

这是关于它的JetBrains代码检查维基的解释: http : //confluence.jetbrains.net/display/ReSharper/Use+%27var%27+keyword+when+initializer+explicitly+declares+type

如果您看到右侧的课程,则不需要在左侧看到它。 如果类名很长,它还可以节省空间并减少代码。 就个人而言,我不使用var作为简单类型,如string,int等,但确实使用它来为var dictionary = new Dictionary()来节省空间。

我认为这表明你们两种方式。 如果您有一个显式类型 – 您可以将其更改为var。 如果你有var – 可以将它改为显式。 只是为了让你更快,如果你认为它是合适的当然。

例如,对于循环变量,当迭代一个集合时,使用变量可能是好的,等等,当类型为“隐式”时(当然,当Resharper建议它时,编译器总是隐含的)并且它不存在不会使代码的可读性降低。 此外,我喜欢它来缩短一些声明,这些声明可能会随着generics而变长。 比如,IList(IDictionary(SomeType))myVar = List(IDictionary(SomeType))()如果在赋值的左侧写“var”,则不会松动太多。

(用尖括号替换parantheses;)

当然,我会尽量小心使用变量,以提高可读性,反之亦然。

对我来说,这绝对物有所值……(即使我必须自己支付)。 但它可以减慢你的VS. 如果您有5000行代码的文件,它可能会变得非常慢。

然而,我仍然没有得到的是为什么我是团队中唯一使用它的人……

Vars有助于使代码在方法中更具可读性,尤其是在使用generics时。

正如乔恩所说,这只是一种选择。