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. Linux入门——文件系统目录结构

    不同操作系统对于文件系统的组织是不一样的,当前主流的两大类操作系统windows和Linux它们在文件系统组织方式上有很大差别.windows的文件系统是以驱动器盘符为基础,这样文件是挂载在分区上的, ...

  2. MySQL缓存命中率概述

    工作原理: 查询缓存的工作原理,基本上可以概括为: 缓存SELECT操作或预处理查询(注释:5.1.17开始支持)的结果集和SQL语句: 新的SELECT语句或预处理查询语句,先去查询缓存,判断是否存 ...

  3. docker重命名镜像

    一.docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

  4. 转:Spring中事物管理

    1.什么是事务? 事务是逻辑上的一组操作,这组操作要么全部成功,要么全部失败 2.事物具有四大特性ACID 说到事务,就不得不说其4大特性,主要如下 原子性:(atomicity) 原子性指的是事务是 ...

  5. python控制selenium点击登录按钮时报错 unknown error: Element is not clickable at point

    利用python控制selenium进行一个网页的登录时报错: C:\Users\Desktop\selenium\chrome>python chrome.py selenium.common ...

  6. shiro双realm验证

    假设现在有这样一种需求:存在两张表user和admin,分别记录普通用户和管理员的信息.并且现在要实现普通用户和管理员的分开登录,即需要两个Realm——UserRealm和AdminRealm,分别 ...

  7. Spring框架学习01——使用IDEA开发Spring程序

    1.创建项目 点击“Create New Project”,新建项目 选择Maven项目 项目配置 使用本地安装的Maven 一直点击Next,最后点击完成当控制台中出现“BUILD SUCCESS” ...

  8. Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】

    No cross,no crown . 不经历风雨,怎么见彩虹. Redis哨兵模式,用现在流行的话可以说就是一个"哨兵机器人",给"哨兵机器人"进行相应的配置 ...

  9. ubantu18.04下Hadoop安装与伪分布式配置

    1  下载 下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/stable2/ 2 解压 将文件解压到 /usr/local/hadoop cd ~ ...

  10. 手动搭建ABP2.1.3——基础框架

    一.基础层搭建 1,创建一个空解决方案 2,层结构 Demo.Core[v:4.6.1]:类库 Demo.EntityFramework[v:4.6.1]:类库(引用Demo.Core) Demo.A ...