Resharper陷入困境

时间:2009-11-24 13:31:59

标签: c# visual-studio resharper

我非常喜欢ReSharper,没有它就行不通,但是我遇到了一些问题,并且学会了避免:

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

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

5 个答案:

答案 0 :(得分:22)

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

答案 1 :(得分:14)

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

答案 2 :(得分:7)

我们过去曾使用过文件范围的条件编译,而Resharper对此完全不了解。它不知道条件是否存在,如果两个文件声明相同的常量和方法,则会出现大量冲突和错误。

<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>

答案 3 :(得分:2)

Resharper要么完全忽略,要么处理Warning As Errors项目构建开关的实现完全不同。 另外,上次检查时,当与警告一起使用时,它会忽略项目配置中的“抑制警告”块。

答案 4 :(得分:2)

条件编译已添加到ReSharper 8。只需获取最新版本。