C#中的两种debug方法介绍
第一种:需要把调试方法改成debug
代码用#ifDEBUG包裹
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.IO;
namespaceSplitPackage
{
publicstaticclassEnvConfig
{
staticEnvConfig()
{
#ifDEBUG
ToolsPath=@"D:\workspace\shopstyle\tool";
#else
ToolsPath=Environment.CurrentDirectory;
#endif
introotIdx=ToolsPath.LastIndexOf(@"\");
if(rootIdx>0)
{
RootPath=ToolsPath.Substring(0,rootIdx);
}
}
publicstaticstringToolsPath{get;privateset;}
publicstaticstringTmplateFile{get{returnPath.Combine(ToolsPath,@"template\default.pm");}}
publicstaticstringRootPath{get;privateset;}
publicstaticstringModulePath{get{returnPath.Combine(RootPath,"module");}}
publicstaticstringConfigPath{get{returnPath.Combine(RootPath,"conf");}}
}
}
第二种:
利用宏定义
#defineDEBUG//C#的宏定义必须出现在所有代码之前。当前我们只让DEBUG宏有效。
usingSystem.Diagnostics; //必须包含这个包
#defineDEBUG
usingSystem.Diagnostics;
namespaceTestConsole
{
classToolKit
{
[ConditionalAttribute("LI")]//Attribute名称的长记法
[ConditionalAttribute("DEBUG")]
publicstaticvoidMethod1(){Console.WriteLine("CreatedByLi,Buged.11");}
[ConditionalAttribute("LI")]
[ConditionalAttribute("NOBUG")]
publicstaticvoidMethod2(){Console.WriteLine("CreatedByLi,NoBug.");}
[Conditional("ZHANG")]//Attribute名称的短记法
[Conditional("DEBUG")]
publicstaticvoidMethod3(){Console.WriteLine("CreatedByZhang,Buged.11");}
[Conditional("ZHANG")]
[Conditional("NOBUG")]
publicstaticvoidMethod4(){Console.WriteLine("CreatedByZhang,NoBug.");}
}
staticvoidMain(string[]args)
{
ToolKit.Method1();
ToolKit.Method2();
ToolKit.Method3();
ToolKit.Method4();
}
}
}