C#如何用#if预处理器指令编译代码?

时间:2010-10-17 08:36:07

标签: c# compilation c-preprocessor

我想知道如果我在代码中使用#if指令编译我的代码。 我想创建我的应用程序的特殊版本(商业演示版),我想限制我的应用程序的功能。我宁愿避免混淆,只是不想将我编译的所有代码都添加到可执行文件中。我需要解决方案拒绝在反汇编过程中预览我的代码。我可以使用#if指令进行变体编译,而不是为禁用代码部分进行注释吗?

2 个答案:

答案 0 :(得分:6)

使用#if指令就像在c ++中使用预处理器一样,如果条件未满足(在编译时),代码就不会出现。来自MSDN

  

当C#编译器遇到#if时   指令,最后是一个   #endif指令,它只会在指令之间编译代码   指定的符号已定义。   与C和C ++不同,您无法分配   符号的数值; #if   C#中的语句仅为布尔值   测试符号是否已经过   定义与否。

答案 1 :(得分:2)

作为@ ohadsc答案的补充:您可以随时查看Reflector编译器实际生成的内容。