为什么Resharper希望您将大多数变量更改为var类型而不是代码中的实际类型?
这只是一个选择.你可以禁用它:
ReSharper - >选项 - >代码检查 - >检查严重性 - >代码冗余 - >尽可能使用'var'关键字:将其更改为"不显示"
还有上下文(灯泡)选项,它将带您进入每个方向 - 这是在ReSharper - >选项 - >语言 - > C# - >上下文操作 - >"用'var'替换显式类型声明"
我看了哈迪哈里里的一段视频,他在那里展示了Resharper 6.x. 他的推理是,如果你强迫用户使用"var",你实际上是强迫他以更有意义的方式命名变量,这样所有的名字都是可读的并且更有意义.
默认情况下,它将为此类型的"绿色波浪形"声明:
Person p = new Person(); ^^^^^^
因为重复.
当可以推断时,它还会建议(小的绿色下划线)变量:
Person p = repository.GetPerson(1); ¯¯¯
在这种情况下,由于GetPerson方法的返回类型,它可以被推测.
正如Jon Skeet所述,您可以在resharper的选项中禁用这些建议.
回答你的问题...因为JetBrains的某个人认为这是"首选"方式.
要改变它,请按照Jon的回答.此外,您还可以在ReSharper选项的"代码清理"部分下执行代码清理(我经常使用)时更改ReSharper的行为.设置为"使用显式类型".