2008-11-17 11 views

回答

30

这只是一个选项。您可以禁用它:

ReSharper的 - >选项 - >代码检查 - >检验严重性 - >代码Redundencies - >使用“变种”关键字在可能的情况:更改为“不显示”

另外还有上下文(灯泡)选项,这将带你在每个方向 - 这是在ReSharper - >选项 - >语言 - > C# - >上下文操作 - >“用'var'取代显式类型声明”

+0

我想从你对Resharper的认识中,你认为它值得授权价格? – CSharpAtl 2008-11-17 20:36:16

+3

绝对如此。我喜欢它。然后再次,作为一个MVP我的许可证价格是0美元,所以我有偏见;) – 2008-11-17 20:47:15

+9

问题是“为什么”? – Cherian 2008-11-18 02:27:19

0

Vars有助于代码在一个方法中更具可读性,特别是如果您使用泛型。

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

5

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

要改变它,请按照乔恩的答案。另外,您还可以在ReSharper选项中的代码清理部分下更改ReSharper在执行代码清理(我使用很多)时的行为。设置为“使用显式类型”。

6

默认情况下,它会“绿色波浪线”这类声明:

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

由于重复的。

它也将建议(小绿下划线)VAR时,可以推断:

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

在这种情况下,它可以因为GetPerson方法的返回类型来infered。

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

1

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

当迭代一个集合时,对于循环变量,使用变量可能是个好习惯,等等,当类型对你来说是“隐含的”时(对于编译器来说,当Resharper暗示它时,它总是隐含的)并且它的缺席并不会降低代码的可读性。 另外,我喜欢缩短一些声明,这些声明可能会随泛型而变长。 像,IList(IDictionary(SomeType))myVar = List(IDictionary(SomeType))()如果你在赋值的左边写上“var”,它不会松动太多。

(替换尖括号括号;)

当然,我会尝试使用VAR提供护理,以提高可读性,而不是相反。

1

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

但是我仍然不明白为什么我是团队中唯一使用它的人......

21

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

3

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

如果看到类的权利没有什么大的需要看它的左边为好。如果类名很长,它也可以节省空间并减少代码。就个人而言,我不会将var用于像string,int等简单类型,但可以将它用于var dictionary = new Dictionary<string, int>()之类的内容以节省空间。