37

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

如果做不到这一点,是否有另一种方法可以抑制 Visual Studio 中的警告?

4

8 回答 8

62

是的。

要禁用,请使用

#pragma warning disable 0169, 0414, anyothernumber

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

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

#pragma warning restore 0169, anythingelse

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

于 2009-09-04T11:21:21.297 回答
18

是的,您可以像这样使用编译指示警告注释:

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

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

于 2009-09-04T11:22:44.027 回答
6

有。有关如何抑制编译器警告的信息,请参阅MSDN页面。

在 Visual Studio 中,转到您的项目属性,选择生成选项卡,然后在 Suppress Warnings 字段中输入警告编号。

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

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

  // optionally, restore warnings again
  #pragma warning restore 0168
  // more code
}
于 2009-09-04T11:21:17.493 回答
5

我强烈建议使用以下表格

#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# 中编号,因此当您看到禁用警告时,这是您对代码中实际情况的唯一参考。当您在整个解决方案中搜索pragma warning时,将其放在行尾是获得显示在搜索结果窗口中的原因的唯一方法。

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

于 2013-08-13T11:24:22.367 回答
4

您可以查看#pragma 指令: http: //msdn.microsoft.com/en-us/library/441722ys (VS.80).aspx 。

于 2009-09-04T11:21:01.237 回答
3

看看SuppressMessageAttributeVisualStudio 中的:http: //msdn.microsoft.com/en-us/library/ms182068.aspx

于 2013-08-13T11:18:22.313 回答
3

您可以使用 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")]
于 2019-10-08T16:10:09.897 回答
0

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

于 2009-09-04T11:33:10.290 回答