什么是预处理惩罚指令符?
当C#编译器找到一条预处理惩罚指令#if,最后找到一条指令时,#endif仅在界说了指定标记的环境下,编译器才会在这些指令之间编译代码。与C和C ++差异,您不能将数字值分派给标记。#if C#中的语句为布尔型,仅测试标记是否已界说。
预处理惩罚指令符的利用#if:打开条件编译,仅在界说了指定标记的环境下才编译代码。
#elif:按照是否界说了指定的标记,封锁前面的条件编译并打开新的条件编译。
#else:假如未界说先前指定的标记,则封锁之前的条件编译并打开新的条件编译。
#endif:封锁前面的条件编译。
条件编译(编译器会按照差异设置情况来执行):
#if DEBUG Console.WriteLine("我是debug 模式!"); #elif RELEASE Console.WriteLine("我是relsease 模式!"); #else Console.WriteLine("我是自界说模式!"); #endif Console.WriteLine("我是没有被任何预处理惩罚过得输出!");
当前办理方案编译情况为Debug
输出功效:
常用指令符:
自界说指令符举例:我们需要两个版本的代码,基本版、更多成果的企业版本。此时我们就可以通过自界说指令符来满意定制化成果。
#define 自界说指令符
#undef 删除指令符
也可以通过属性的方法来执行要领
利用Visual Studio快速界说指令符VS站点-》右键-》属性-》生成-》通例
界说生效后,通过csproj工程文件我们可以看到有两条PropertyGroup对应差异的Condition
界说指令符区域你还可以利用以下两个预处理惩罚措施指令界说可以折叠在纲要中的代码区域:
#region:开始一个区域。
#endregion:竣事区域
#region MyClass definition public class MyClass { static void Main() { } } #endregion
参考链接
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/preprocessor-directives
https://blog.walterlv.com/post/how-to-define-preprocessor-symbols.html
https://www.cnblogs.com/woxihuadabai/p/8005892.html
到此这篇关于.net 预处理惩罚指令符的利用的文章就先容到这了,更多相关.net 预处理惩罚指令符内容请搜索剧本之家以前的文章或继承欣赏下面的相关文章但愿各人今后多多支持剧本之家!
您大概感乐趣的文章: