全面介绍C#预处理

开发 后端
本文介绍C#预处理标识符使用和规则C#标识符文法相似的文法,以及介绍C#预处理控制行和C#预处理表达式。

C#预处理控制行

特性#error和#warning使得代码可以把警告和错误的条件报告给编译程序,来查出标准的编译时的警告和错误。

pp-con trol-line:  
#error pp-message  
#warning pp-message  
pp-message:  
pp-tokensopt 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

举个例子帮助大家理解

#warning Code review needed before check-in  
#define DEBUG  
#if DEBUG && RETAIL  
#error A build can't be both debug and retail!  
#endif  
class Class1  
{…} 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

这将总是产生警告(“Code review needed before check-in"),并且如果予处理修饰符DEBUG 和RETAIL 都被定义,还会产生错误。

C#预处理标识符

C#预处理标识符使用和规则C#标识符文法相似的文法:

pp -identifi er:  
pp-ava ilable-identifier  
pp-ava ilable-identifi er:  
A pp-identif ier-or-keyword that is not true or false  
pp-id entif ier-or-keyword:  
identifi er-start-character identif ier-part-characters opt 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

true 和false 符号不是合法的预定义指示符,所以不能用于#define 的定义和#undef 的反定义。

C#预处理表达式

操作符!, ==, !=, && 和||是允许的预定义表达式。在预定义表达式中,圆括号可以用来分组。

pp-expression:  
pp-equality-expression  
pp-pr imary-expression:  
true  
false  
pp -identifi er  
( pp-expression )  
 
pp-unary-expression:  
pp-pr imary-expression  
! pp-unary-expression  
pp-equality-expression:  
pp-equality-expression == pp-logical-and-expression  
pp-equality-expression != pp-logical-and-expression  
pp-logical-and-expression:  
pp-unary-expression  
pp-logical-and-expression && pp-unary-expression  
pp-logical-or-expression:  
pp-logical-and-expression  
pp-logical-or-expression || pp-logical-and-expression 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

【编辑推荐】

  1. C#字符串进行分割
  2. 全面测试C#字符串
  3. C# out和ref传递数组
  4. 浅析C#定义整型数组
  5. C#数据库连接字符串
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-07 17:41:40

C#预处理

2009-09-01 10:20:28

C#多种语句

2009-07-31 15:52:47

C#常用函数

2009-08-03 17:12:40

C#指针操作

2010-02-03 13:33:42

C++预处理命令

2009-08-11 15:17:12

C#基础知识

2009-09-04 11:35:05

C#方法重写

2009-08-14 16:01:22

C#面向对象

2009-08-05 18:28:05

C#异常处理

2009-07-31 16:48:44

C#位运算

2011-06-21 10:00:21

预处理指令

2009-08-12 18:35:36

C# ArrayLis

2016-12-15 13:47:29

C语言预处理命令

2011-08-17 10:29:39

Objective-C预处理

2009-08-11 14:57:11

比较C#和Java

2009-09-18 10:45:31

C#数组操作

2009-07-31 14:15:38

C# 构造函数

2009-08-04 08:48:44

C#内置特性

2009-08-12 09:41:28

C# Director

2009-08-18 16:45:40

C# Raw Sock
点赞
收藏

51CTO技术栈公众号