2014-12-02 90 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之間的代碼(或者添加標誌是否爲真)。

由於代碼甚至沒有在編譯的應用程序中,因此無法「神奇地」將其還原。

相關問題