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

Nos*_*ama 29 c# java compiler-warnings visual-studio

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

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

Tam*_*lei 54

是.

要禁用,请使用:

#pragma warning disable 0169, 0414, anyothernumber
Run Code Online (Sandbox Code Playgroud)

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

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

#pragma warning restore 0169, anythingelse
Run Code Online (Sandbox Code Playgroud)

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


Rob*_*ban 17

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

#pragma warning disable 414
//some code that generates a warning
#pragma warning restore 414
Run Code Online (Sandbox Code Playgroud)

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


Raz*_*zie 6

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

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

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

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

  // optionally, restore warnings again
  #pragma warning restore 0168
  // more code
}
Run Code Online (Sandbox Code Playgroud)


Sam*_*ell 5

我强烈建议使用以下表格

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

#pragma warning restore 649
Run Code Online (Sandbox Code Playgroud)

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

构建项目后,您可以通过查看“输出”窗口来识别警告编号。确保它显示 Show output from: Build