C#学习笔记(十五):预处理指令
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#学习笔记(十五):预处理指令的更多相关文章
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- (转载)西门子PLC学习笔记十五-(数据块及数据访问方式)
一.数据块 数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的. 数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的 ...
- (C/C++学习笔记) 十六. 预处理
十六. 预处理 ● 关键字typeof 作用: 为一个已有的数据类型起一个或多个别名(alias), 从而增加了代码的可读性. typedef known_type_name new_type_nam ...
- (C/C++学习笔记) 十五. 构造数据类型
十五. 构造数据类型 ● 构造数据类型概念 Structured data types 构造数据类型 结构体(structure), 联合体/共用体 (union), 枚举类型(enumeration ...
- SQLite学习笔记(十二)&&虚拟机指令
上篇文章简单讨论了虚拟机的原理,这篇文章我们详细讨论下指令,具体从几种典型的SQL语句来看看每种SQL对应的指令流,以及每个指令的含义.通过explain语句,可以看到语句对应的指令流:通过pragm ...
- MySQL学习笔记十五:优化(2)
一.数据库性能评测关键指标 1.IOPS:每秒处理的IO请求次数,这跟磁盘硬件相关,DBA不能左右,但推荐使用SSD. 2.QPS:每秒查询次数,可以使用show status或mysqladmin ...
- python 学习笔记十五 web框架
python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. Python的WEB框架分为两类: 自己写socket,自 ...
- vue学习笔记(五)——指令
13条指令 1. v-text (数据绑定语法-插值) <span v-text="msg"></span> <!-- 和下面的一样 --> & ...
- Java基础学习笔记十五 集合、迭代器、泛型
Collection 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数组既然都 ...
- angular学习笔记(十五)-module里的'服务'
本篇介绍angular中的模块:module 在笔记(二)http://www.cnblogs.com/liulangmao/p/3711047.html里已经讲到过模块,这篇主要讲模块的 '服务' ...
随机推荐
- 亲测!Jquery2.0不支持IE8-了
最近由于测试需要,Win7回退到了官方更新的IE8浏览器,惊人的发现: <script src="//cdn.bootcss.com/jquery/2.0.0/jquery.min.j ...
- I.MX6 默认打开 USB adb
/***************************************************************************** * I.MX6 默认打开 USB adb ...
- TCP/IP详解学习笔记(14)-TCP连接的未来和性能(未写完)
在TCP刚出世的时候,其主要工作环境是以太网和SLIP之类的低速网络.随着高速网络的出现,让TCP协议的吞吐量更大,效率更高的要求就愈来愈迫切.为此,TCP增加了三个重要机制来对应现在的变化,他们是 ...
- 头痛的ASCII和preg_replace()
说这个之前,大家先看下这条语句: preg_replace("/\<\?\=(\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\[\]\"\'\$\x7f- ...
- store / cache 系列
### golang go-cache An in-memory key:value store/cache (similar to Memcached) library for Go, suitab ...
- ant 安装过程中问题记录
最近在本机安装ant过程中出现一些问题,在此记录一下. 1.Unable to locate tools.jar. Expected to find it in C:/Program Files/Ja ...
- POJ 1195- Mobile phones(二维BIT)
题意: 矩阵上的单点更新,范围求和 #include <map> #include <set> #include <list> #include <cmath ...
- IOS 类别与扩展的区别 (category & extensions)
类别 .h @interface NSString(XXXXXX) -(NSInteger)getLen; @end .m @implementation NSString(XXXXXX) -(NSI ...
- IOS 类别
在编写面向对象的程序时,你经常希望向现有的类添加一些新的行为:你总是能够为对象提供使用这些新方法的新手段.当希望为现有的类增加新行为时,我们通常会创建子类,但是有时候子类并不方便.例如,你可能会希望为 ...
- ASP.NET Session丢失的解决方案
正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的.现在我就把原因 ...