.NET通用Attirbute

来源:互联网 发布:谷歌seo经验分享 编辑:程序博客网 时间:2024/05/16 02:18

预处理标示特性 Conditional

  Conditional 应用于方法以启用或禁用程序特定的诊断信息的显示:

 

#define TRACE_ONusing System;using System.Diagnostics;public class Trace{    [Conditional("TRACE_ON")]    public static void Msg(string msg)    {        Console.WriteLine(msg);    }}public class ProgramClass{    static void Main()    {        Trace.Msg("Now in Main...");        Console.WriteLine("Done.");    }}


如果未定义 TRACE_ON 标识符,则将不会显示跟踪输出。

Conditional 属性经常与 DEBUG 标识符一起使用以启用调试版本的跟踪和日志记录功能(在发布版本中没有这两种功能),如下例所示:

[Conditional("DEBUG")]static void DebugMethod(){}


 当调用标记为条件的方法时,指定的预处理符号的存在或不存在决定是否包含或省略此调用。如果定义了该符号,则包含调用;否则省略调用。使用 Conditional 是封闭#if   和#endif 内部方法的替代方法,它更整洁、更别致、减少了出错的机会,如下例所示:

#if DEBUGvoid ConditionalMethod(){}#endif


条件方法必须是类或结构声明中的方法,而且必须具有 void 返回类型。

多个标示符之间是或关系

 详见http://msdn.microsoft.com/zh-cn/library/4xssyw96(v=vs.80).aspx

原创粉丝点击