爱漫画-只做精品的韩漫网站,要建立网站怎么建立,微信如何制作自己的公众号,企业网站搭建这些是C#中的条件编译符号。这些指令我在项目中遇到过#xff0c;查过网络#xff0c;问过人(当然#xff0c;既不认识大牛#xff0c;也不认识小牛#xff0c;所以没什么收获)。今天翻看一本资料#xff0c;有提到这个方面的东西#xff0c;所以写下来和能看到这篇文章…这些是C#中的条件编译符号。这些指令我在项目中遇到过查过网络问过人(当然既不认识大牛也不认识小牛所以没什么收获)。今天翻看一本资料有提到这个方面的东西所以写下来和能看到这篇文章的人一起学习。C#中的#define预处理指令不能定义替换常数。该指令现在只能定义用于条件编译的符号为#if、#elif、#else及#endif所用。源文件在进行编译之前要进行一次文件处理这是由预处理器完成的。这种文件处理只对源文件进行文本处理而不进行任何编译动作。所有预处理指令都以“#”符号开头。预处理识别以下指令识别以下指令#define #undef #if #elif #else #endif #error #warning #line #region #endregion#pragma warning disable #pragma warning restore#if #elif #else #endif 指令可以完成使用#define指令来定义一些指导预处理器修改原代码的符号的工作。下面是使用条件编译的实例#define MACRO1using Systempublic class Program{public static void Main(){#if (MACRO1)console.writeline(MACRO1 is defined.);#elif (MACRO2)console.writeline(MACRO2 is defined and MACRO1 is not defined);#elseconsole.writeline(MACRO2 and MACRO1 are both defined);#endif}}如果用vs会看到开发环境将不编译的代码显示为灰色。符号常量必须在using指令之前定义。补充#if 使您可以开始条件指令测试一个或多个符号以查看它们是否计算为 true。如果它们的计算结果确实为 true则编译器将计算位于 #if 与最近的 #endif 指令之间的所有代码。例如#if DEBUGstring file root /conf_debug.xml;#elsestring file root /conf.xml;#endif这段代码会像往常那样编译但读取debug配置文件包含在#if子句内。这行代码只有在前面的#define命令定义了符号DEBUG后才执行。当编译器遇到#if语句后将先检查相关的符号是否存在如果符号存在就只编译#if块中的代码。否则编译器会忽略所有的代码直到遇到匹配的#endif指令为止。一般是在调试时定义符号DEBUG把不同的调试相关代码放在#if子句中。在完成了调试后就把#define语句注释掉所有的调试代码会奇迹般地消失可执行文件也会变小最终用户不会被这些调试信息弄糊涂(显然要做更多的测试确保代码在没有定义DEBUG的情况下也能工作)。这项技术在C和C编程中非常普通称为条件编译(conditional compilation)。参考文献https://www.cnblogs.com/OpenCoder/category/1132736.html