使用隐式类型化

8

可能是重复问题:
Resharper: vars

为什么resharper建议使用var thing1 = 5而不是int thing1 = 5?它们似乎意思完全相同,只是var对于人类读者来说更难/难以理解。我很想知道编译器解释它们的方式是否有区别,或者它只是一种语法糖。

3个回答

7
不,生成的IL代码将完全相同。我猜如果你采纳Resharper的建议,它也会“建议”另一种方式 - 如果我没记错,它的默认设置是始终提供在两个方向上进行更改的能力。但是你可以在选项中更改它所建议的内容。

2
哇,ReSharper真是一只恶意巨怪。“使用var”*-使用var-“不,不,不,使用int!”-使用int-* “不,使用var!” - BoltClock

5

2
ReSharper建议您使用var的原因是它默认配置为这样做。进入ReSharper选项,在“代码检查”下找到“检查严重性”设置,然后在该列表中向下找到标记为“尽可能使用'var'关键字”的设置。如果使用默认设置“显示为建议”,则ReSharper将默认建议您使用var而不是实际类型,如果:您正在构造对象(即Type x = new Type(...););您正在使用常量进行初始化(即int x = 5;)。在这两种情况下,ReSharper被编程为假定您可以轻松地找到正确的类型,因此可以使用var。如果您不想要这个功能,请更改该设置。您还可以直接在Alt + Enter下拉菜单中更改该设置,只需选择下拉菜单中的底部项目,并弹出一个对话框询问如何处理该设置。此外请注意,如果您要求ReSharper更改代码以使用var,它将不会建议您将其变回来,但您可以通过再次按Alt + Enter并选择选项“显式指定类型”来这样做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接