C# 使用隐式类型
可能重复:C# 使用隐式类型,c#,resharper,implicit-typing,C#,Resharper,Implicit Typing,可能重复: resharper建议var thing1=5而不是int thing1=5有什么原因吗?似乎它们的意思完全相同,只是var对人类读者来说更难理解。我想知道编译器解释它们的方式是否有差异,或者只是语法上的差异。不,生成的IL将完全相同 我怀疑如果你接受Resharper的建议,它也会“建议”走另一条路——IIRC默认的做法是始终提供在任一方向改变的能力。不过,您可以在选项中更改它的建议。使用“var”关键字往往会引起争议。本次辩论的“权威”参考是ReSharper建议您使用var的
resharper建议
var thing1=5
而不是int thing1=5
有什么原因吗?似乎它们的意思完全相同,只是var对人类读者来说更难理解。我想知道编译器解释它们的方式是否有差异,或者只是语法上的差异。不,生成的IL将完全相同
我怀疑如果你接受Resharper的建议,它也会“建议”走另一条路——IIRC默认的做法是始终提供在任一方向改变的能力。不过,您可以在选项中更改它的建议。使用“var”关键字往往会引起争议。本次辩论的“权威”参考是ReSharper建议您使用
var
的原因是,默认情况下,它被配置为这样做
进入ReSharper的选项,在“代码检查”下找到“检查严重性”设置,然后向下进入该列表,找到标记为“尽可能使用'var'关键字”的设置
在默认设置为“显示为建议”的情况下,ReSharper将默认建议您使用var
而不是实际类型,如果:
- 您正在构造一个对象(即,
)Type x=new Type(…);
- 您正在用一个常量初始化它(即
)intx=5;
var
如果您不想这样,请更改该设置。您也可以在Alt+Enter的下拉菜单中直接更改该设置,只需在下拉菜单中选择底部项目:
它将弹出一个对话框,询问如何处理该设置:
还请注意,如果您要求ReSharper将代码更改为使用
var
,它不会建议您将其返回,但您可以通过再次按Alt+Enter并选择“显式指定类型”选项来实现。哇,ReSharper是一个卑鄙的巨魔。“使用var
”-使用var
-“不,不,不,使用int
!”-使用int
-“不,使用var
!”