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

#region

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

点击后如下:

条件预处理

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

#define

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

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

#define IOS

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

#undef

取消一个宏定义,如下:

#undef IOS

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

#if、#else、#elif、#endif

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

 #define ANDROID
#define IOS
#undef IOS using System; namespace Study
{
class Program
{
static void Main(string[] args)
{ #if ANDROID
Console.WriteLine("Android 平台的代码写这里。");
#elif IOS
Console.WriteLine("IOS 平台的代码写这里。");
#else
Console.WriteLine("其他平台的代码写这里。");
#endif Console.Read();
}
}
}

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

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

#warning、#error

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

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

#line

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

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

#pragma

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

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

C#学习笔记(十五):预处理指令的更多相关文章

  1. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  2. (转载)西门子PLC学习笔记十五-(数据块及数据访问方式)

    一.数据块 数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的. 数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的 ...

  3. (C/C++学习笔记) 十六. 预处理

    十六. 预处理 ● 关键字typeof 作用: 为一个已有的数据类型起一个或多个别名(alias), 从而增加了代码的可读性. typedef known_type_name new_type_nam ...

  4. (C/C++学习笔记) 十五. 构造数据类型

    十五. 构造数据类型 ● 构造数据类型概念 Structured data types 构造数据类型 结构体(structure), 联合体/共用体 (union), 枚举类型(enumeration ...

  5. SQLite学习笔记(十二)&&虚拟机指令

    上篇文章简单讨论了虚拟机的原理,这篇文章我们详细讨论下指令,具体从几种典型的SQL语句来看看每种SQL对应的指令流,以及每个指令的含义.通过explain语句,可以看到语句对应的指令流:通过pragm ...

  6. MySQL学习笔记十五:优化(2)

    一.数据库性能评测关键指标 1.IOPS:每秒处理的IO请求次数,这跟磁盘硬件相关,DBA不能左右,但推荐使用SSD. 2.QPS:每秒查询次数,可以使用show status或mysqladmin ...

  7. python 学习笔记十五 web框架

    python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. Python的WEB框架分为两类: 自己写socket,自 ...

  8. vue学习笔记(五)——指令

    13条指令 1. v-text (数据绑定语法-插值) <span v-text="msg"></span> <!-- 和下面的一样 --> & ...

  9. Java基础学习笔记十五 集合、迭代器、泛型

    Collection 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数组既然都 ...

  10. angular学习笔记(十五)-module里的'服务'

    本篇介绍angular中的模块:module 在笔记(二)http://www.cnblogs.com/liulangmao/p/3711047.html里已经讲到过模块,这篇主要讲模块的 '服务' ...

随机推荐

  1. CSS效果

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs& ...

  2. BZOJ2073: [POI2004]PRZ

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2073 题解:跟风Xs酱! 数据范围这么小,肯定是状压DP.咦?怎么枚举子集?... 跪烂Xs: ...

  3. HDU 4635 Strongly connected (强连通分量)

    题意 给定一个N个点M条边的简单图,求最多能加几条边,使得这个图仍然不是一个强连通图. 思路 2013多校第四场1004题.和官方题解思路一样,就直接贴了~ 最终添加完边的图,肯定可以分成两个部X和Y ...

  4. poj 1780 Code

    //题目描述:KEY公司开发出一种新的保险箱.要打开保险箱,不需要钥匙,但需要输入一个正确的.由n位数字组成的编码.这种保险箱有几种类型,从给小孩子玩的玩具(2位数字编码)到军用型的保险箱(6位数字编 ...

  5. C# 一次查询多表,填充DataSet并指定表名

    lhrhi 原文 NET 一次查询多表,填充DataSet并指定表名(DataSet指定DataTable名称的技巧) 现实中的场景,有时可能需要一次查询数据库中表张.在使用SqlDataAdapte ...

  6. java移动/赋值文件 copy/move file

    public class FileAccess { public static boolean Move(File srcFile, String destPath) { // Destination ...

  7. javascript 面向对象整理

    整理一下js面向对象中的封装和继承. 1.封装 js中封装有很多种实现方式,这里列出常用的几种. 1.1 原始模式生成对象 直接将我们的成员写入对象中,用函数返回. 缺点:很难看出是一个模式出来的实例 ...

  8. CSS书写规范、顺序

    写了这么久的CSS,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,总结一个CSS书写规范.CSS书写顺序供大家参考,这些是参考了国外一些文章以及我的个人经验总 ...

  9. nginx+tomcat反向代理下使用tomcat-redis-session-manager进行session共享中值得注意的一个问题

    公司目前项目使用nginx反向代理+多个tomcat进行负载均衡,之前使用ip_hash策略进行session控制.近期有考虑不再使用ip_hash策略,所以需要进行session共享. 根据项目实际 ...

  10. iOS Development Learning 13Nov

    关注了关东升老师在博客园的iOS开发博客. 在使用能力课堂观看智捷课堂的iOS8开发视频教程.观看到Part1 课时3 Xcode中的iOS工程模板