我正在使用Obsolete属性(正如其他程序员所建议的那样)来在使用某个方法时显示警告。
是否有一种方法可以在合理使用的情况下抑制类似CodeAnalysis的SuppressMessage的警告?
这需要为[Obsolete("Some message")]工作,它会生成警告618,而没有消息的普通[Obsolete]属性会生成警告612。
我正在使用Obsolete属性(正如其他程序员所建议的那样)来在使用某个方法时显示警告。
是否有一种方法可以在合理使用的情况下抑制类似CodeAnalysis的SuppressMessage的警告?
这需要为[Obsolete("Some message")]工作,它会生成警告618,而没有消息的普通[Obsolete]属性会生成警告612。
你正在寻找#pragma警告禁用指令
http://msdn.microsoft.com/en-us/library/441722ys (VS.80) . aspx
实际上,您可以在.cs文件的调用站点上方添加以下命令。
#pragma warning disable 612
SomeMethodCall
612是调用过时方法的错误消息ID
使用#pragma警告禁用:
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");
}
}
事后恢复警告,这样你就不会错过“坏”电话。
其目的是禁用对过时用法的警告,无论构造是否标记为[obsolete]或[obsolete ("Message")]。所以同时使用CS0612和CS0618:
#pragma warning disable 612, 618
...
#pragma warning restore 612, 618
以下是如何在第一时间获得警告/错误编号:
重新构建项目。 进入“输出”窗口。 查找要抑制的警告/错误所在行。 例如: c:\用户\用户名\文档\ visual Studio 2010\Projects\Projectname\Classname.cs(202,7):警告CS0162:检测到不可达代码 复制“CS”后面的数字部分。 然后按照乔恩·斯基特说的去做。
(最好总是像乔恩·斯基特说的那样……)