Resharper陷入困境

Pau*_*sik 12 c# resharper visual-studio

我绝对崇拜ReSharper,没有它就无法工作,但是我遇到了一些问题并且学会了避免:

  • 允许ReSharper自动重命名字符串文字可能会在您的对象变量与DAL SQL或其他字符串常量中的列名匹配时出现这种情况.我已经知道,当第二个重命名对话框出现时,我真的需要看看ReSharper建议的内容并经常跳过字符串文字重命名步骤,而不是不耐烦地按下回车键.
  • 这个更隐蔽:当您启用解决方案范围的分析时,ReSharper将告诉您是否使用了公共方法.这包括属性中的getter和setter.这是一个很棒的功能,但是ReSharper不知道的是,当你设计一个将在设计器中显示的视图(表单,用户ctrl)时,属性获取器和设置器在设计时被调用并且不会显示在编译中.因此,ReSharper将建议这些财产的吸气剂或制定者可以私有或只是删除.但是,如果进行调整然后在设计器中加载视图,设计器将崩溃,因为该属性不可用且错误消息不是很明显.简而言之,程序员在设计视图时需要仔细考虑属性使用建议.

那些是我的大人物.还有什么可以咬我和ReSharper同伴的爱好者?

Chr*_*ris 22

当我运行使用#ifs进行条件编译的预处理程序指令,并且设置当前配置以便隐藏代码块时,它似乎看不到#if'd代码并且会建议输出变量该代码块使用,认为它永远不会被调用.

  • 我今天遇到了这个并报告:http://youtrack.jetbrains.com/issue/RSRP-337056 (5认同)
  • +1就此而言.Resharper似乎不理解条件编译器语句. (4认同)

der*_*gel 14

您可以通过UsedImplicitly属性标记此类属性,ReSharper不会建议删除它.

  • 没有必要参考JetBrains组件.您可以将这些属性复制到项目,任何位置和命名空间.查看ReSharper→选项→代码注释→将默认实现复制到剪贴板. (6认同)

Gab*_*Roy 7

We have used file-wide conditional compilation in the past, and Resharper goes completely nuts about those. It has no idea the conditions even exist, and loads of conflicts and errors can appear if both files declare the same constants and methods.

<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' Or '$(Configuration)|$(Platform)' == 'Release|x64'">
    <Compile Include="SomeFileFor.x64.cs">
        <SubType>Code</SubType>
    </Compile>
</ItemGroup>
<ItemGroup Condition=" !('$(Configuration)|$(Platform)' == 'Debug|x64' Or '$(Configuration)|$(Platform)' == 'Release|x64')">
    <Compile Include="SomeFileFor.x32.cs">
        <SubType>Code</SubType>
    </Compile>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)