8

可能重复:
Resharper:vars

resharper 是否有理由提出var thing1 = 5反对int thing1 = 5?似乎它们的意思完全相同,只是 var 对人类读者来说更难/更难理解。我很想知道编译器解释它们的方式是否存在差异,或者它是否只是语法糖。

4

3 回答 3

7

不,生成的 IL 将完全相同

我怀疑如果您接受 Resharper 的建议,它也会建议”采取另一种方式 - IIRC 默认始终提供向任一方向更改的能力。不过,您可以更改它在选项中的建议。

于 2011-06-05T21:00:14.650 回答
5

'var' 关键字的使用往往会引起争议。这场辩论的“权威”参考是http://blogs.msdn.com/b/ericlippert/archive/2011/04/20/uses-and-misuses-of-implicit-typing.aspx

于 2011-06-05T21:01:11.177 回答
2

ReSharper 建议您使用的原因var是它默认配置为这样做。

进入 ReSharper 的选项,在“代码检查”下找到“检查严重性”设置,然后进入该列表,找到标记为“尽可能使用 'var' 关键字”的设置。

ReSharper 将在默认设置为“显示为建议”的情况下,默认建议您使用var而不是实际类型,如果:

  • 您正在构建一个对象(即。Type x = new Type(...);
  • 您正在使用常量(即。int x = 5;)对其进行初始化

在这两种情况下,ReSharper 都被编程为假定您无论如何都可以轻松找到正确的类型,因此您可以使用var.

如果您不希望这样,请更改该设置。您也可以直接在从 Alt+Enter 获得的下拉菜单中更改该设置,只需选择下拉菜单中的底部项目:

Alt+Enter 下拉菜单

它会弹出一个对话框,询问如何处理该设置:

对话框

另请注意,如果您要求 ReSharper 将代码更改为 using var,它不会建议您将其转回,但您可以通过再次按 Alt+Enter 并选择“明确指定类型”选项。

于 2011-06-05T21:09:50.750 回答