【C#基础】C#预处理器指令
来源:互联网 发布:广东省云计算应用协会 编辑:程序博客网 时间:2024/06/07 15:51
本文参考书籍:《C#高级编程》。
1、#define 和 #undef
#define 的用法如下:
#define DEBUG
这句代码必须放在程序的开头,在using语句之前
它告诉编译器存在给定名称的符号,类似一个变量,但是没有值。个人理解为一个标志位。它不是实际代码的一部分,只在编译器编译代码时存在。在C#
代码中它没有任何意义。
#undef 正好与它相反,是用来删除一个符号的定义
#undef DEBUG
如果DEBUG这个符号不存在,这句代码没有意义,如果存在则#define定义的DEBUG没有意义了。
由于没有意义,所以使用的时候一般是结合下面的预处理器指令一起使用的
2、#fi、#elif、#else、#endif
这些指令是告诉编译器是否要执行下面的一些代码。
例子:
static void Test() { string s = "have debug";#if DEBUG Console.WriteLine("have debug");#endif }
前面我们定义了DEBUG,所以会输出一句“have debug”。
在实际中应用的时候(这里特指unity3d程序),如:
#UNITY_EDITOR//do something#UNITY_ANDROID//do something#UNITY_IPHONE//do somethin#endif
每一个这样的预编译器指令都必须用endif结尾。
上面的代码表示在编译代码的时候,检测程序所处的运行环境,然后依据这个执行相应的代码。
3、#warming、#error
如果编译器遇到#warming语句会给用户显示#warming之后的文本,并继续执行代码
如果编译器遇到#error语句则会给用户显示#error之后的文本,并停止执行,退出程序。如:
static void Test() { string s = "have debug";#if DEBUG #warning "you've defing a DEBUG" Console.WriteLine("have debug");#error "stop"#endif }
“stop”会出现红色下划线并去程序不能运行。
4、#region、#endregion
用于折叠代码块。
5、#line
用来定义错误的行号。
6、#pragma
用来抑制或还原指定的编译警告。与命令行选项不同,#pragma指令可以在类或者方法级别执行,对抑制警告的内容和抑制的时间进行更精细的控制。如:
#pragma warning disable 78 static void Test() { int index; }#pragma warning restore 78
更多的详细内容请参考:http://www.cnblogs.com/mq0036/p/6367931.html
阅读全文
0 0
- 【C#基础】C#预处理器指令
- C#基础-预处理指令
- C# 预处理器指令
- C#预处理器指令
- C# 预处理器指令
- C#预处理器指令
- C#预处理器指令
- C# 预处理器指令
- C#预处理器指令
- C#预处理器指令
- C# 预处理器指令
- C#预处理器指令
- C#预处理器指令
- C#预处理器指令
- C#预处理器指令
- C#预处理器指令
- C# 预处理器指令
- C#预处理器指令入门
- Java json 转xml
- Oracle创建DBlink
- npm install node-sass死活安装不上,最后终于搞定
- kotlin---基本语法
- javascript之Date对象知识整理
- 【C#基础】C#预处理器指令
- 使用spring实现文件的下载
- bootstrap创建动态模态框,点击链接时也可以触发动态模态框。
- kafka基础之介绍和分布式集群搭建
- Plain Old Data (POD)
- TensorFlow实现多层感知器
- jekins 配置 maven 库
- AWS EC2常见问题
- Swing-setAlignmentX()用法-入门