zoukankan      html  css  js  c++  java
  • C#编程(十)----------C#预处理器

    原文链接:http://blog.csdn.net/shanyongxu/article/details/46491757

    C#中的预处理器指令

    #IF

    如果 C# 编译器遇到最后面跟有 #endif 指令的 #if 指令,则仅当指定的符号已定义时,它才会编译这两个指令之间的代码。
    C# 中的 #if 语句是 Boolean,仅测试符号是否已定义。
    运算符 &&(与)和 ||(或)可用来评估多个符号是否已定义。 还可以用括号将符号和运算符分组。
    结合使用 #if 与 #else、#elif、#endif、#define 和 #undef 指令,可以根据一个或多个符号是否存在来包含或排除代码。在编译调试版本的代码或针对特定配置进行编译时,这会很有用。
    以 #if 指令开始的条件指令必须用 #endif 指令显式终止。

    #Else

    #else 允许您创建复合条件指令,因此,如果前面的 #if 或(可选)#elif 指令中的任何表达式都不为 true,则编译器将计算 #else 与后面的 #endif 之间的所有代码。

    #Elif

    #elif 使您得以创建复合条件指令。如果前面的 #if 和前面的任何 #elif(可选)指令表达式的计算结果都不是 true,则将计算 #elif 表达式。如果 #elif 表达式计算为 true,编译器将计算位于 #elif 和下一个条件指令之间的所有代码。
    使用 #elif 更简单,因为每个 #if 都需要一个 #endif,而 #elif 即使在没有匹配的 #endif 时也可以使用。

    #Endif

    #endif 指定以 #if 指令开头的条件指令的结尾

    #Define

    #define 可让您定义符号。 当您将符号用作传递给 #if 指令的表达式时,此表达式的计算结果为 true

    注意:不能像在 C 和 C++ 中的通常做法一样,使用 #define 指令来声明常数值。最好是将 C# 中的常数定义为类或结构的静态成员。如果具有多个像这样的常数,可以考虑创建一个单独的“Constants”类来保存这些常数。

    例如:

    #define DEBUG 
    #define VC_V6 
    using System; 
    public class MyClass 

       public static void Main() 
       { 

          #if (DEBUG && !VC_V6) 
             Console.WriteLine("DEBUG is defined"); 
          #elif (!DEBUG && VC_V6) 
             Console.WriteLine("VC_V6 is defined"); 
          #elif (DEBUG && VC_V6) 
             Console.WriteLine("DEBUG and VC_V6 are defined"); 
          #else 
             Console.WriteLine("DEBUG and VC_V6 are not defined"); 
          #endif 
       } 

    如上所示:由于DEBUG 和 VC_V6 都定义了,所以,高亮代码执行.其他代码不执行.

    #Undef
    #undef 使您可以取消符号的定义,以便通过将该符号用作 #if 指令中的表达式,使表达式的计算结果为 false。

    #define DEBUG

    #undef DEBUG

    using System

    class MyTest

    {

    static void Main()

    {

    #if DEBUG

    Console.WriteLine(“DEBUG is defined”);

    #else

    Console.WriteLine(“DEBUG is not defined”);

    #endif

    }

    }
    运行结果为:DEBUG is not defined

    #Warning
    #warning 使您得以从代码的特定位置生成一级警告。 例如:

    #define DEBUG

    class MainClass

    {

        static void Main()

        {

    #if DEBUG

    #warning DEBUG is defined

    #endif

        }

    }

    #Error 

    #error使您可以从代码中的特定位置生成错误。例如:

    #define DEBUG

    class MainClass

    {

        static void Main()

        {

    #if DEBUG

    #error DEBUG is defined

    #endif

        }

    }

    #Region

    #region 是大家最为熟悉的指令,它使您可以在使用 Visual Studio 代码编辑器的大纲显示功能时指定可展开或折叠的代码块。 在较长的代码文件中,能够折叠或隐藏一个或多个区域会十分便利,这样,您可将精力集中于当前处理的文件部分。 下面的示例演示如何定义区域:

    #region MyClass definition

    public class MyClass

    {

        static void Main()

        {

        }

    }

    #endregion

    #region 块必须以 #endregion 指令终止。
    #region 块不能与 #if 块重叠。但是,可以将 #region 块嵌套在 #if 块内,或将 #if 块嵌套在 #region 块内。

    #endregion

    #endregion 标记 #region 块的结尾

     
  • 相关阅读:
    java (取文本中间)字符串之间的文本
    Mysql数据库中text还是不够
    java读取网页内容
    controller to controller
    农历类
    java.lang.RuntimeException: com.google.inject.CreationException: Unable to create injector, see the following errors
    Java中List集合去除重复数据的方法
    idea启动tomcat的中文乱码问题
    idea局域网调试 can accept external connection不可勾选
    Mysql JDBC Url参数说明useUnicode=true&characterEncoding=UTF-8
  • 原文地址:https://www.cnblogs.com/android-blogs/p/6437196.html
Copyright © 2011-2022 走看看