zoukankan      html  css  js  c++  java
  • C#学习笔记(十五):预处理指令

    C#和C/C++一样,也支持预处理指令,下面我们来看看C#中的预处理指令。

    #region

    代码折叠功能,配合#endregion使用,如下:

    点击后如下:

    条件预处理

    条件预处理可以根据给出的条件决定最终进行编译的代码,换句话说可以排除掉指定的代码不进行编译。

    #define

    定义一个宏,注意只要定义名称就行了,不需要值。

    一般会把宏定义写在第一行。

    #define IOS

    这样就表示IOS这个宏被定义出来了。

    #undef

    取消一个宏定义,如下:

    #undef IOS

    这样可以取消IOS这个宏定义。

    #if、#else、#elif、#endif

    具体使用的指令,下面给出示例:

     1 #define ANDROID
     2 #define IOS
     3 #undef IOS
     4 
     5 using System;
     6 
     7 namespace Study
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13 
    14 #if ANDROID
    15             Console.WriteLine("Android 平台的代码写这里。");
    16 #elif IOS
    17             Console.WriteLine("IOS 平台的代码写这里。");
    18 #else
    19             Console.WriteLine("其他平台的代码写这里。");
    20 #endif
    21 
    22             Console.Read();
    23         }
    24     }
    25 }

    而在Unity中,已经对对应的平台和版本定义了相应的宏,可以查看下面的链接:

    http://docs.unity3d.com/Manual/PlatformDependentCompilation.html

    #warning、#error

    这两个指令可以使编辑器进行警告和报错,一般和条件指令搭配,用于调试。

    1 #warning 这里不应该这么写!
    2 #error 这里这么写是错误的!

    #line

    配合#warning和#error使用,可以设置报错或警告的具体行数。

    1 //200 行的问题
    2 #line 200 "可选的文件名,表示具体有问题的文件,不用加后缀名。"
    3 //恢复行数为当前行数
    4 #line default

    #pragma

    这个指令可以通过我们自己扩展来完成特定的功能,这里就不多讲,给大家一个文章链接:

    http://blog.csdn.net/jx_kingwei/article/details/367312

  • 相关阅读:
    Mysql 基础
    Python Cdn平台文件md5验证
    Linux内存cache/buffer剖析
    wget
    UTV
    智能DNS解析之edns-client-subnet篇
    Python Django
    OpenSSL SNI
    Python 基础(一)
    Python ORM
  • 原文地址:https://www.cnblogs.com/hammerc/p/4614510.html
Copyright © 2011-2022 走看看