2012-01-13 102 views
27

是否有一种方法可以通过单个注释禁用一个文件或一段代码的所有Resharper警告?我正在尝试创建一些面试潜在候选人的编码练习,并且Resharper警告提供了我希望候选人发现的问题:P抑制具体警告仍然使问题变得明显。禁用所有Resharper警告和注释

我还想在面试期间提供Resharper,我只是希望应聘者能够发现这个问题而不需要Resharper破坏乐趣。

编辑:对不起,我会试着更清楚我后来的事情。我不想永久禁用特定的Resharper警告,我只是希望它不会显示在一个特定的文件中,因为练习的要点是查看开发人员是否理解警告的原因。

举一个例子,Resharper警告使用.Any扩展方法而不是Count()> 0,我希望开发人员自己指出。要禁用该警告,您必须使用以下注释:

// ReSharper disable UseMethodAny.0 

围绕代码。这种游戏让游戏走了一点。

我试图找到类似:

// ReSharper disable all 

,我可以发生在类的顶部,这样就不会放弃我想开发商找一下。但我似乎无法找到办法做到这一点。使用Resharper警告的数字也可以,但我认为它不是那种方式?

+7

真的,即使你在上面的数字把所有?如果你在文件上面加上'#pragma warning disable 1573',人们立刻就能识别出1573警告的含义 - 只需在当场雇用:) – 2012-01-13 17:33:49

+0

感谢Alexei的建议,但我在谈论Resharper的警告,而不是来自C#编译器的警告 – 2012-01-14 11:09:09

+1

在ReSharper中,从警告/错误旁边的灯泡thingie中选择“disable with pragma”(或类似的东西 - 没有它的方便),它将使用该语法。全部移到顶部,添加几个额外的人,没有人可以使用它们作为提示。 – 2012-01-14 20:17:54

回答

32

根据JetBrains博客上的this blog post,在ReSharper 8中,会有一个注释可以禁用文件中的resharper。

这将是

// ReSharper disable All 

注:“全部”是大小写敏感的,其余不是。

+2

所有需要骆驼案件为它工作。 – sellotape 2014-02-14 15:20:15

+2

而且,如果您只想禁用一个文件或部分,请将“// ReSharper Disable All”放在开头,并在文件/部分的末尾加上“// ReSharper Restore All”。 (在ReSharper 8+上工作) – vpalmu 2014-08-25 23:20:20

+1

这对我来说压制内置的R#警告,但不适用于我的“自定义模式” – 2014-10-27 02:31:02

2
+1

没错。在这种情况下,最好的方法是按* Alt + Enter *站在不想显示的高亮部分,选择*检查选项*,然后选择*不显示*。这会让ReSharper忽略这个和所有类似的代码问题 – gorohoroh 2012-01-13 17:34:27

+0

这是我发布的文章中显示的一个选项: ....按Alt + Enter打开一个包含快速修复的下拉列表,喜欢改变检查严重性.... – 2012-01-13 17:36:48

+0

感谢您的建议家伙,但我希望找到一种方法,只是禁用所有警告在一个特定的文件 - 我希望R#继续给我这些警告通常,我只是想压制他们为这一个文件,而不明显哪些我压制。 – 2012-01-14 11:11:20

41

尼亚尔,您可以按按Ctrl + Shift + Alt + 8禁止在当前文件的分析和highligtings。

+1

这应该是公认的答案,因为这会抑制当前文件中的所有R#分析。您可以通过查看文件滚动条的顶部(打开时)来判断R#分析是否被禁用; R#方块将是灰色而不是绿色/黄色/红色。 – 2012-04-23 00:08:01

2

可以在ReSharpers选项菜单中的文件添加到“生成的代码”的名单:

Options > CodeInspection > Generated Code 
4

以下为我工作。

  • 加入 “不ReSharper的” 来生成代码区域中的R# - >选项 - >代码检查 - >生成的代码
  • 使用以下方法来抑制警告:

    #region No Resharper 
    
    // All R# warnings are suppressed here 
    
    #endregion 
    
2

您也可以使用SuppressMessageAttributeReSharper作为类别全部 a如下所示的方法或类上的checkId。如果您需要细粒度的控制,这比禁用文件中的所有内容更精细。

测试与Visual Studio 2015年更新3和ReSharper的终极10.0.2

[SuppressMessage("ReSharper", "All")] 
private void MethodWithMultipleIssues() 
{ 
    TestClass instance = null; 
    // You would get an "Expression is always true" message 
    if (instance == null) 
    { 
     Debug.WriteLine("Handle null"); 
    } 
    else 
    { 
     // You would get an "Code is unreachable" message 
     Debug.WriteLine("Handle instance"); 
    } 
}