我正在使用Obsolete
属性(正如其他程序员所建议的那样)在使用某种方法时显示警告。
有没有办法在使用合理的地方抑制类似于CodeAnalysis'SuppressMessage
的警告?
谢谢!
修改
这是针对[Obsolete("Some message")]
的,因为我需要包含有关警告的一些细节。但是,一旦我将消息添加到裸#pragma warning disable 612
属性,[Obsolete]
就不再起作用了......
编辑2
找到正确的警告号码 - 如果您在过时属性后面有消息,则 618 。
所以要做我想做的事:
#pragma warning disable 618
然后在通话后
#pragma warning restore 618
感谢Jared Par和Jon Skeet指出我正确的方向!
答案 0 :(得分:241)
使用#pragma warning disable
:
using System;
class Test
{
[Obsolete("Message")]
static void Foo(string x)
{
}
static void Main(string[] args)
{
#pragma warning disable 0618
// This one is okay
Foo("Good");
#pragma warning restore 0618
// This call is bad
Foo("Bad");
}
}
之后恢复警告,这样您就不会错过“不良”电话。
答案 1 :(得分:122)
intent 是禁用过时用法的警告,无论该构造是否标有[Obsolete]
或[Obsolete("Message")]
。因此,请同时使用CS0612 和 CS0618:
#pragma warning disable 612, 618
...
#pragma warning restore 612, 618
答案 2 :(得分:18)
首先如何获取警告/错误编号:
答案 3 :(得分:9)
您正在寻找#pragma
警告禁用指令
基本上,您在.cs文件中的调用站点上方添加以下命令。
#pragma warning disable 612
SomeMethodCall
612是用于调用过时方法的错误消息ID