【问题标题】:Using implicit typing [duplicate]使用隐式类型
【发布时间】:2011-09-08 21:39:43
【问题描述】:

可能重复:
Resharper: vars

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

【问题讨论】:

    标签: c# resharper implicit-typing


    【解决方案1】:

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

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

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        不,生成的 IL 将完全相同相同。

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

        【讨论】:

        • 哇,ReSharper 是一个卑鄙的巨魔。 “使用var-使用var-“不,不不,使用int!” -使用int-“不,使用var!”
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-31
        • 2012-11-25
        • 2022-01-19
        • 2018-11-21
        • 2013-08-02
        • 1970-01-01
        • 2010-10-13
        相关资源
        最近更新 更多