有没有办法在C#中抑制类似于Java的@SuppressWarnings注释的警告?
如果失败了,是否有另一种方法来抑制Visual Studio中的警告?
答案 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)
您可以查看#pragma指令:http://msdn.microsoft.com/en-us/library/441722ys(VS.80).aspx。
答案 5 :(得分:3)
查看VisualStudio中的SuppressMessageAttribute
:http://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")]