#if DEBUG
    1
#else
    2
#endif什么情况下运行1,什么时候运行2?  换句话说DEBUG是怎么定义的?
通过web.config,还是通过像定义变量一样?我也试了把程序发布出来再运行看,还是运行2搞不明白呀

解决方案 »

  1.   

    关于#define DEBUG我找了很多资料,还是不多明白#define DEBUG 就是定义DEBUG的值?
    写了#define DEBUG就执行1程序段了?
    那很多程序里都有
    #if DEBUG 
        1 
    #else 
        2 
    #endif 怎么统一设置?
      

  2.   

    找到如下文章:
    关于#define要说明几点,#define DEBUG 等效于不写这句话,你要不定义它才一定要写上#undefin DEBUG 
     (C# Essentials一书中说 #define DEBUG 等效于#define DEBUG true,不过这个好像有问题) 这一段代码可以说明好几个命令: 
    #define DEBUG 
    #define VC_V6 
    using System; 
    public class MyClass 

       public static void Main() 
       {       #if (DEBUG && !VC_V6) 
             Console.WriteLine("DEBUG is defined"); 
          #elif (!DEBUG && VC_V6) 
             Console.WriteLine("VC_V6 is defined"); 
          #elif (DEBUG && VC_V6) 
             Console.WriteLine("DEBUG and VC_V6 are defined"); 
          #else 
             Console.WriteLine("DEBUG and VC_V6 are not defined"); 
          #endif 
       } 
    } 难道我要这样定义?#define DEBUG false ???
      

  3.   

    #if DEBUG 应该是和 Debugger.IsAttached一样作用的,检验是否为调试状态
      

  4.   

    意思是不是说,当我按F5调试的时候,#if DEBUG就成立?但实际上,正常运行的时候,#if DEBUG就是成立的,执行1的部分
      

  5.   

    #define DEBUG 这个DEBUG就是一个宏开关。如果有上面那一句话,这里的if就是true了。记住关键字:“开关”#if DEBUG 
        1 
    #else 
        2 
    #endif 
      

  6.   

    #if/#endif #define 等等是预处理器,是编译时解析处理的#define DEBUG 表示用#define指令定义一个名为 DEBUG 的符号,你即可在代码中定义,也可以通过编译器选项定义VS 中定义符号在 项目属性>Build选项卡>General 
      

  7.   

    额tang'ren'chao ???可巧了啊,我,wang'jiang'hua