我不知道如何編譯我的代碼,如果我在代碼中使用#if
指令。 我想創建我的應用程序(商業演示版)的特殊版本,我想限制我的應用程序的功能。我寧願避免混淆,只是不想將所有編譯的代碼添加到可執行文件。我需要解決方案抵制在反彙編過程中預覽我的代碼。我可以使用#if
指令的變種編譯而不是使禁用部分代碼註釋?如何C#編譯的#if預處理指令代碼?
1
A
回答
6
使用#if指令就像在C++中使用預處理器一樣,如果條件未滿足(在編譯時間內),代碼將不會存在。從MSDN:
當C#編譯器遇到的#if 指令,最終接着是
#endif
指令時,它將只編譯如果 指定的符號被定義的指令之間的代碼。與C和C++不同,不能將 數值指定給符號; C#中的#if 語句是布爾值,並且只有 測試符號是否已被定義爲 。
2
作爲@ ohadsc回答的補充:您總是可以使用Reflector來檢查編譯器實際生成的內容。
相關問題
- 1. 如何編譯已經用C預處理的C代碼?
- 2. 我如何編譯C#代碼的IL代碼指令
- 3. 針對C/C++代碼的預處理指令#ifndef
- 4. C++預處理指令
- 5. C#預處理器指令
- 6. 將預處理器指令縮進爲emacs中的C代碼
- 7. IL代碼中的C#預處理器指令
- 8. 處理在Mac上編譯C++代碼
- 9. 如何將代碼塊用作c預處理器指令的參數?
- 10. 預處理指令導入基於對C#中的預處理指令平臺
- 11. RIM編譯器支持的預處理器指令
- 12. Lex規則的C預處理指令
- 13. C預處理指令(SQR-的Funktion)
- 14. Objective-C的預處理指令發出
- 15. 多行C預處理指令的宏
- 16. C預處理器與C編譯器
- 17. 如何讓C預處理器在編譯期間執行代碼?
- 18. 如何將C預處理程序僅應用於某些(#if/#endif)指令?
- 19. objective-c預處理器指令
- 20. C#預處理器指令範圍
- 21. C++預處理指令限制
- 22. 如何編譯c/cpp代碼,以便在linux中編譯後提供預處理彙編和對象文件?
- 23. 如何向由預處理的T4模板生成的C#代碼添加一個編譯指示
- 24. VS C++編譯器應該如何處理這段代碼?
- 25. C#編譯器:預處理只有
- 26. C++「編譯器」與預處理
- 27. C預處理指令,條件編譯方法用方括號調用
- 28. 帶有預處理器指令的C++類世代
- 29. 如何在整個編譯過程中遵循預處理器指令
- 30. 如何使用枚舉值直接編譯預處理器指令
我假設你的意思是「預處理器」而不是「預編譯」。的#if在C++中的預處理器僅僅意味着文本的塊被傳遞給真實的編譯器,如果條件沒有得到滿足,即編譯器不連看到裏面的#if的代碼,如果該條件未被滿足之前以文本編輯了。 – 2010-10-17 08:40:06
你是對的,謝謝 – 2010-10-17 08:40:55