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

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

  1. Docker技术入门与实战 第二版-学习笔记-3-Dockerfile 指令详解

    前面已经讲解了FROM.RUN指令,还提及了COPY.ADD,接下来学习其他的指令 5.Dockerfile 指令详解 1> COPY 复制文件 格式: COPY  <源路径> .. ...

  2. 重温JSP学习笔记--三大指令九大内置对象

    最近在温习javaweb的相关基础知识,鉴于我弄丢了记满了整整一本的笔记,决定以后把笔记和一些学习上的心得以及碰到的一些问题统统都放在网上,今天看了一下jsp的相关基础,以下是笔记: JSP三大指令: ...

  3. VUE 学习笔记 一 指令

    1.声明式渲染 v-bind 特性被称为指令.指令带有前缀 v-,以表示它们是 Vue 提供的特殊特性 <div id='app'> <span v-bind:title=" ...

  4. linux学习笔记1——指令的基本格式及基本文件操作

    从今天开始就正式踏上了linux的学习历程.linux作为绝大多数服务器采用的操作系统,是每个开发人员都非常有必要掌握的操作系统.初学时,我没有直接在电脑上安装linux操作系统,而是采用了虚拟机的方 ...

  5. Vue2学习笔记:v-show指令

    v-show指令:v-show="true/false" 控制元素显示/隐藏 1.使用 <!DOCTYPE html> <html> <head> ...

  6. Vue2学习笔记:v-model指令

    1.v-model指令 <!DOCTYPE html> <html> <head> <title></title> <script s ...

  7. Ionic学习笔记3_ionic指令简单布局

    1)   添加引用类库(ionic样式和ionic js文件) 2)   标题栏,页脚栏,内容区 3)   Js引入ionic类库,添加页面操作方法和对象 4)   数据初始化 5)   Html页面 ...

  8. angularjs学习笔记—事件指令

    ngClick 适用标签:所有触发条件:单击 #html <div ng-controller="LearnCtrl"> <div ng-click=" ...

  9. Hadoop学习笔记——入门指令操作

    假设Hadoop的安装目录HADOOP_HOME为/home/admin/hadoop. 启动与关闭启动HADOOP1. 进入HADOOP_HOME目录. 2. 执行sh bin/start-all. ...

  10. Vue2学习笔记:v-for指令

    1.使用 <!DOCTYPE html> <html> <head> <title></title> <meta charset=&q ...

随机推荐

  1. java 缺憾:异常的丢失

    一.java的异常实现也是又缺陷的,异常作为程序出错的标志决不能被忽略,但它还是可能被轻易地忽略.下了可以看到前一个异常还没处理就抛出下一个异常,没有catch捕获异常,它被finally抛出下一个异 ...

  2. Mybatis输入映射和输出映射

    本节内容: 输入参数映射 输出映射 resultMap Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 一.环境准备 复制 ...

  3. 慢查询日志和profiling

    MySQL调优三步: 慢查询 (分析出现出问题的sql) Explain (显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句) Profile ...

  4. pig cookbook学习

    pig cookbook学习 Overview 近期需要用pig做一些统计,由于没有系统学习,问题出现一些问题,且不容易调试,执行效率也不高.所以打算看一些官方文档,在此做些笔记. pig性能提升 指 ...

  5. Python PyCharm编译器

    PyCharm编译器有很强大的代码提示功能,业界都说很好用,所以我尝试着安装并使用,以下是过程. 下载地址:http://www.jetbrains.com/pycharm/download/#sec ...

  6. Android SDK platforms build-tools等镜像下载

    Android SDK platforms build-tools等镜像下载     下载地址:http://mirrors.neusoft.edu.cn/android/repository/  这 ...

  7. 008.KVM-VNC管理

    一 VNC管理 1.1 修改配置 [root@kvm-host ~]# vi /etc/libvirt/qemu.conf …… vnc_listen = "0.0.0.0" 说明 ...

  8. Android 前台服务

    Android 前台服务 学习自 https://blog.csdn.net/guolin_blog/article/details/11952435#t3 前台服务漫谈 我们之前学习的Service ...

  9. Django模版语言inclusion_tag的用法。

        inclusion_tag.它多用于一个HTML片段的.例如我写的一个BBS项目中. 一个博主的主页面的左侧栏和查看博主某篇文章的页面的左栅栏的一样的.为了不用重复写同样的代码.且提高页面的扩 ...

  10. windows下elasticsearch启动

    windows下启动elasticsearch,依赖于配置好JAVA_HOME D:\Program Files\Java\jdk1.7.0_71 命令行启动elasticsearch.bat即可实现 ...