2012-01-13 74 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"); 
    } 
}