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

时间:2009-09-04 11:16:52

标签: c# java visual-studio compiler-warnings

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

如果失败了,是否有另一种方法来抑制Visual Studio中的警告?

8 个答案:

答案 0 :(得分:48)

要停用,请使用

#pragma warning disable 0169, 0414, anyothernumber

其中数字是您可以从编译器输出中读取的警告的标识符。

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

#pragma warning restore 0169, anythingelse

通过这种方式,您可以使编译器输出干净,并保证自己的安全,因为警告只会针对代码的特定部分进行抑制(您确定不需要查看它们 )。

答案 1 :(得分:15)

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

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

省略数字会禁用并恢复所有警告代码......

答案 2 :(得分:5)

有。请参阅MSDN页面,了解如何禁止编译器警告。

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

从代码到禁用特定警告,您可以使用#pragma指令:

public class MyClass
{
  #pragma warning disable 0168
  // code

  // optionally, restore warnings again
  #pragma warning restore 0168
  // more code
}

答案 3 :(得分:4)

我强烈建议您使用以下表格

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

#pragma warning restore 649

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

您可以在构建项目后通过查看输出窗口来识别警告编号。确保它显示显示输出:构建

答案 4 :(得分:3)

答案 5 :(得分:3)

查看VisualStudio中的SuppressMessageAttributehttp://msdn.microsoft.com/en-us/library/ms182068.aspx

答案 6 :(得分:0)

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

答案 7 :(得分:0)

您可以使用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")]