每次编译从网上下载的开源代码,我都会对着 Error List 窗口里密密麻麻的黄色 Warning 信息发呆。可能我有那么点 "洁癖",因为有很多警告信息实在没有必要弄出来干扰我们的视线。
利用 C# 预处理指令(Preprocessor Directives),我们可以屏蔽掉那些我们能确认的警告信息。比如:
try
{
// do something...
throw new Exception();
}
catch (Exception ex)
{
// TODO: 记录错误日志
}
我们已经使用了 TODO 标记,表示会在日后某个时间补全这段代码。但当我们编译(Build)时,会出现如下警告信息。
接下来,我们请出 "#pragma warning"。
#pragma warning disable 0168
try
{
throw new Exception();
}
catch (Exception ex)
{
// TODO: 记录错误日志
}
#pragma warning restore 0168
再次编译,警告信息没有了,世界终于清净了。
你或许奇怪数字 "0168" 怎么来的,在警告信息右键菜单单击 "Show Error Help" 打开 MSDN Explorer 就行了。
我们平时用到的预处理指令还有很多,包括我们已经习惯了的 #if、#region 等等。
#if
#else
#elif
#endif
#define
#undef
#warning
#error
#line
#region
#endregion
#pragma
#pragma warning
#pragma checksum
最后严重恼火一把,System.Web.Script.Serialization.JavaScriptSerializer 明明是 FX 3.5 才加入的,怎么也被加上 Obsolete 标记了?难道是临时方案?