代码之家  ›  专栏  ›  技术社区  ›  Nosrama

有没有类似于Java的@SuppressWarnings注释的方法来抑制C#中的警告?

  •  25
  • Nosrama  · 技术社区  · 16 年前

    如果做不到这一点,是否有其他方法可以在VisualStudio中抑制警告?

    7 回复  |  直到 16 年前
        1
  •  60
  •   Tamás Szelei    16 年前

    若要禁用,请使用

    #pragma warning disable 0169, 0414, anyothernumber
    

    重新启用警告 在代码的特定部分(这是一个好主意)之后使用:

    #pragma warning restore 0169, anythingelse
    

    通过这种方式,您可以使编译器输出保持干净,并确保您自己的安全,因为警告只会对代码的特定部分进行抑制( ).

        2
  •  18
  •   Robban    16 年前

    是的,您可以像这样使用pragma警告注释:

    #pragma warning disable 414
    //some code that generates a warning
    #pragma warning restore 414
    

    省略数字将禁用并恢复所有警告代码。。。

        3
  •  6
  •   Razzie    16 年前

    MSDN 有关如何抑制编译器警告的页面。

    在Visual Studio中,转到项目属性,选择“生成”选项卡,然后在“抑制警告”字段中输入警告号。

    在代码中,要禁用特定警告,可以使用#pragma指令:

    public class MyClass
    {
      #pragma warning disable 0168
      // code
    
      // optionally, restore warnings again
      #pragma warning restore 0168
      // more code
    }
    
        4
  •  5
  •   Sam Harwell    13 年前

    我强烈建议使用以下表格

    #pragma warning disable 649 // Field 'field' is never assigned to, and will always have its default value 'value'
    
    #pragma warning restore 649
    

    第一行上的注释摘自MSDN文档的第一个类似部分 Compiler Warning (level 4) CS0649 . 由于警告是用C#进行编号的,因此当您看到警告被禁用时,这是您对代码中实际发生的情况的唯一引用。当您对整个解决方案进行搜索时,将其放在行的末尾是获得显示在搜索结果窗口中的原因的唯一方法 .

    您可以通过查看 输出 创建项目后打开窗口。确保上面写着 显示来自:Build的输出

        5
  •  4
  •   Marcin Deptuła    16 年前
        6
  •  3
  •   HerpDerpington    13 年前

    看一看这本书 SuppressMessageAttribute 在VisualStudio中: http://msdn.microsoft.com/en-us/library/ms182068.aspx

        7
  •  3
  •   TroySteven    6 年前

    您可以使用SuppressMessage数据注释来防止出现警告。

    [SuppressMessage("Reason #Enter whatever you'd like", "ID, must match what intellsense is showing it looks something like this: IDE0001", Justification = "(optional, your own description")]
    

    下面是一个现实世界的例子:

    [SuppressMessage("IntelliSenseCorrection", "IDE0001", Justification = "Do Not Remove <T> Variable, It's Required For Dapper")]
    
        8
  •  0
  •   Will Marcouiller    16 年前

    我想您也可以尝试查看项目或解决方案属性,并将警告级别设置为较低级别左右。否则,其他反应可能更好。