2014-12-02 43 views
-1

我敢肯定的答案是NO 我只是想确保它是不可能取消激活条件编译符号之间代码在运行时,前;是否可以在运行时禁用条件编译符号?

/* code that make this been skip*/ 

#if DEBUG 
    /* some code here */ 
#endif 

没有做这样的事情;

public class test 
{ 
    public static bool ActivateDebug = true; 

    public void SomeMethod() 
    { 
     /*some code*/ 

     #if DEBUG 
     if (test.ActivateDebug) 
     { 
      /*some code */ 
     } 
     #endif 

     /*some code */ 
    } 
} 
+1

if语句用于运行时,'#IF' - 用于编译时。没有理由存在别的东西 – 2014-12-02 16:28:33

+0

不,_compilation_是'conditional compilation symbols'中的操作字。 – 2014-12-02 16:32:12

回答

2

不,条件编译符号在编译的预处理期间受到控制。这意味着编译器实际上删除了#if#endif之间的代码(或者添加标志是否为真)。

由于代码甚至没有在编译的应用程序中,因此无法“神奇地”将其还原。

相关问题