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. CentOS和Windows下配置MySQL远程访问的教程

    CentOS和Windows下配置MySQL远程访问的教程   一.前言 由于实验在云服务器上跑的结果不是很理想.所以,现在切换到局域网服务器.因此,需要重新配置 Windows 服务器和 CentO ...

  2. 基于jquery的水平滚轴组件,多参数可设置。

    闲来无事,继续封装.此次封装的为水平滚轴组件,可选择滚动的距离大小.闲话不多说,直接上图. 参数说明: vis:4                中间区域可显示的 li 个数 scroll:4     ...

  3. Python中“if __name__=='__main__':”理解与总结

    1 引言 在Python当中,如果代码写得规范一些,通常会写上一句“if __name__==’__main__:”作为程序的入口,但似乎没有这么一句代码,程序也能正常运行.这句代码多余吗?原理又在哪 ...

  4. [TJOI2015]线性代数

    OJ题号:BZOJ3996 题目大意: 给定一个矩阵$B_{nn}$,矩阵$C_{1n}$,存在一个01矩阵$A_{1,n}$使得$d=(A\times B-c)\times A^\mathsf{T} ...

  5. hdu 4169 二分匹配最大独立集 ***

    题意:有水平N张牌,竖直M张牌,同一方向的牌不会相交.水平的和垂直的可能会相交,求最少踢出去几张牌使剩下的牌都不相交. 二分匹配 最小点覆盖=最大匹配. 链接:点我 坐标点作为匹配的端点 #inclu ...

  6. BZOJ3779 : 重组病毒

    一个点的感染时间为它到根路径上虚边数+1. 用Link-Cut Tree模拟虚实边切换,每次切换时等价于在一段或两段DFS序区间更新,线段树维护即可. 时间复杂度$O(n\log^2n)$. #inc ...

  7. Xtreme8.0 - Kabloom dp

    Xtreme8.0 - Kabloom 题目连接: https://www.hackerrank.com/contests/ieeextreme-challenges/challenges/kablo ...

  8. Codeforces Round #371 (Div. 2) B. Filya and Homework 水题

    B. Filya and Homework 题目连接: http://codeforces.com/contest/714/problem/B Description Today, hedgehog ...

  9. OpenJ_POJ C16B Robot Game 打表找规律

    Robot Game 题目连接: http://acm.hust.edu.cn/vjudge/contest/122701#problem/B Description Sgeoghy has addi ...

  10. nexus-maven- repository-index.zip手动下载与设置

    问题描述: 在启动eclipse的时候,在maven控制台经常会看到更新nexus-maven-repository-index.zip,用 eclipse更新速度会很慢,甚至有不能完成下载的情况:  ...