全面介绍C#预处理

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

C#预处理控制行

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

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

举个例子帮助大家理解

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

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

C#预处理标识符

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

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

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

C#预处理表达式

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

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

【编辑推荐】

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

2009-08-07 17:41:40

C#预处理

2009-08-03 17:12:40

C#指针操作

2009-07-31 15:52:47

C#常用函数

2009-09-01 10:20:28

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

2011-08-17 10:29:39

Objective-C预处理

2016-12-15 13:47:29

C语言预处理命令

2009-08-11 14:57:11

比较C#和Java

2009-09-18 10:45:31

C#数组操作

2009-09-08 16:58:24

c#checklist

2009-09-02 17:20:50

C# Parsing

2009-08-25 10:24:29

C# delegate

2009-08-10 16:30:56

C# BitmapDa
点赞
收藏

51CTO技术栈公众号