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(); } } }