zoukankan      html  css  js  c++  java
  • .net 预处理指令符的使用

    目录

    1. 什么是预处理指令符?
    2. 预处理指令符的使用
    3. 自定义指令符
    4. 使用Visual Studio快速定义指令符
    5. 定义指令符区域

    什么是预处理指令符?

    当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

  • 相关阅读:
    HDU 树型dp
    NOIP模拟 Math
    HTML5本地存储LocalStorage和sessionStorage
    数据结构与算法第一章答案
    堆和队列的应用之——简单计算器
    HITCS-LAB1 Linux 下C工具的应用
    cs:app 第二章homework(已完结)
    vim使用小结(1)
    学术英语写作(1)
    linux基础(2)
  • 原文地址:https://www.cnblogs.com/cainiaodage/p/14622029.html
Copyright © 2011-2022 走看看