在C#中使用Conditional元数据attribute来实现Debug代码
1[Conditional("DEBUG")]
2private void DEBUG_TRACE( string strMsg )
3{
4 Console.WriteLine( strMsg );
5}
2private void DEBUG_TRACE( string strMsg )
3{
4 Console.WriteLine( strMsg );
5}
1 DEBUG_TRACE("ERROR MESSAGE1");
2 Console.WriteLine("MESSAGE");
3 DEBUG_TRACE("ERROR MESSAGE2");
2 Console.WriteLine("MESSAGE");
3 DEBUG_TRACE("ERROR MESSAGE2");
Console.WriteLine("MESSAGE");
不过使用Conditional属性的函数有个限制,就是不能有返回值,即必须以void来定义返回值。
而且用Conditional来增加多个属性,例如:
[Conditional( "DEBUG" ),Conditional( "TRACE" )]
private void DEBUG_TRACE( string strMsg )
{
Console.WriteLine( strMsg );
}
不过这两个属性之间的关系是或的关系,即“DEBUG”或者“TRACE”任意一个被定义了,那么这段代码就会被执行。如果需要增加两个并的属性,直接用Conditional是无法实现的,需要借助IF/ENDIF来完成,如下:
#if( DEBUG && TRACE )
#define BOTH
#endif
[Conditional( "BOTH" )]
private void DEBUG_TRACE( string strMsg )
{
Console.WriteLine( strMsg );
}
方法一,直接在程序中加入,需要在一个文件的开头进行定义;
方法二,在项目中的编译命令行中进行设置;
方法三,是在操作系统中增加环境变量。
posted on 2006-08-24 23:10 ............. 阅读(1229) 评论(0) 编辑 收藏 举报