zoukankan      html  css  js  c++  java
  • 【条件编译】

    条件编译指令用于按条件包含或排除源文件中的某些部分。

    按照语法的规定,条件编译指令必须写成集的形式,集的组成依次为:一个 #if 指令、一个或多个 #elif 指令(或没有)、一个或多个 #else 指令(或没有)和一个 #endif 指令。指令之间是源代码的条件节。每节代码直接位于它前面的那个指令控制。条件节本身可以包含嵌套的条件编译指令,前提是这些指令构成完整的指令集。

     1 #define Debug      // Debugging on
     2 #undef Trace      // Tracing off
     3 class PurchaseTransaction
     4 {
     5    void Commit() {
     6       #if Debug
     7          CheckConsistency();
     8          #if Trace
     9             WriteToLog(this.ToString());
    10          #endif
    11       #endif
    12       CommitHelper();
    13    }
    14 }

    #define或#undef必须定义在所有using 命名空间前面.#define类型为布尔值的真,#undef为布尔值的假.

    C#为此提出了一种更好的选择:Conditional特性。使用Conditional特性,我们可以将一些函数隔离出来,使得它们只有在定义了某些环境变量或者设置了某个值之后才能发挥作用。Conditional特性最常用的地方就是将代码改编为调试语句。.NET框架已经为此提供了相关的功能支持。下面的代码展示了Conditional特性的工作原理,以及适用场合。

    1 [ Conditional( "DEBUG" ) ]
    2 private void CheckState( )
    3 {
    4   // 代码保持不变。
    5 }

    Conditional的命名空间:using System.Diagnostics;
    Conditional方法作用的函数必须为void返回类型的。

    这样就可以在编译的过程中生成多种版本的程序。

  • 相关阅读:
    delphi 随意将函数执行权限提高到Ring0源代码
    delphi 使电脑睡眠代码
    delphi 监控文件系统
    在Delphi中使用系统对应文件类型的图标
    Panel
    delphi 读写记录类型文件Record
    C# winform 一次只能允许一个应用(使用mutex)
    winform捕获全局异常
    观察者模式实践-实现winform 窗体之间传值(事件实现)
    在wpf中利用异步lambda编程,模拟数据库连接,防止界面假死
  • 原文地址:https://www.cnblogs.com/viewcozy/p/4668135.html
Copyright © 2011-2022 走看看