C#预处理

C#定义了多个预处理指令,它们可以改变编译系统解释源程序文件的方式。在把程序翻译为目标代码之前,预处理指令首先对源文件中的文本产生作用,即编译哪些文本。C#中所有的预处理指令都以#开头,并且每个预处理指令都单独占用一行。C#2.0中的预处理指令如下表。

                                    C#预处理指令

image

 

7.2.1 #define指令

 

 

  1. #define指令用于定义一个称为符号(symbol)的字符序列。#if和#elif指令可以判断某个符合是否已经存在,并据此控制编译过程。#define指令的基本形式如下: 
  2. #define symbol 
  3. 注意,这里没有以分号结束,因为它不是C#的语句,而是一个预处理指令。#define和symbol之间至少要用一个空格隔开。C#该指令不同于C和C++中的#define指令(C、C++中是用来定义宏的)。 
  4. 例如: 
  5. #define Windows

 

7.2.2 #if#elif#else#endif指令

 

#if指令的基本形式如下:

 

  1. #if symbol_expression_1 
  2. statement_sequence_1 
  3. #elif symbol_expression_2 
  4. statement_sequence_2 
  5. #else 
  6. statement_sequence_n 
  7. #endif

 

7.2.2 #if#elif#else#endif指令

 

其中,symbol_expression_i是一个symbol或多个symbol构成的逻辑表达式。如果表达式的值为真,则编译statement_sequence_i,如果所有的symbol_expression都为假,则编译statement_sequence_n

例 P7_5

 

7.2.3 #undef指令

 

  1. #undef指令可以取消之前定义的符号,基本形式如下: 
  2. #undef symbol 
  3. 例如: 
  4. #define SMALL 
  5. //这个位置之前SMALL是被定义的 
  6. #if SMALL 
  7. #undef SMALL 

 

7.2.4 #error指令

 

 

 

  1. #error指令主要用于调试,它可以迫使编译器停止编译。该指令的基本形式如下: 
  2. #error error_message 
  3. 其中,error_message是错误信息。例如: 
  4. #error An error occurred here!

 

7.2.5 #warning指令

 

 

  1. #warning类似于#error,不过它产生的是警告消息而不是错误消息。因此,编译过程不会停止。其基本形式如下: 
  2. #warning warning_message

 

7.2.6 #line指令

 

 

  1. #line指令可以为它所在的文件设置行号和文件名。编译过程中如果出现错误或警告就会用到这里的行号和文件名。#line指令的基本形式为: 
  2. #line number "filename" 
  3. 其中,number是任意的正整数,它用作新行的行号。可选的filename表示一个任意有效的文件标识符,它被用作新的文件名。#line主要用于调试和特殊的应用程序。 
  4. #line指令还有两个选秀,一个是default,它根据原来的位置返回行号。其用法为: 
  5. #line default 
  6. 另一个是hidden,在逐步调试一个程序的时候,hidden选项允许编译器跳过该指令与下一个不包含hidden选项的#line指令之间的行。其用法如下: 
  7. #line hidden

 

7.2.7 #region#endregion指令

 

 

  1. #region和#endregion用于定义一个区域,该区域可以在Visual Studio IDE的大纲视图中被扩展或收缩。其基本形式如下: 
  2. #region region_name 
  3. //code 
  4. #endregion 
  5. 其中,region_name用于指定区域的名称

 

7.2.8 #program指令

 

#program指令是C#2.0新增的,它用于给出指令,例如为编译器指定选项。其基本形式如下:

#program option

其中,option是传递给编译器的指令。

在C#2.0中,#program支持两个选项。一个是warning,它用于启用或禁用某个具体的编译器警告。对于的命名如下:

 

  1. #program warning disable warnings //禁用警告 
  2. #program warning restore warnings

 

7.2.8 #program指令

 

  1. 其中,warnings是一个逗号分隔的警告编号列表。例如: 
  2. #program warning disable 168 //禁用168号警告 
  3. 另一个选项是checksum。它用于为ASP.NET项目生成校验和。其基本形式如下: 
  4. #program checksum "filename""{GUID}""check-sum" 
  5. 其中,filename是文件名,GUID是与文件名相关的全局唯一标识符,check-sum是一个包含校验和的十六进制数。该字符串必须包含偶数个数字。

转载于:https://www.cnblogs.com/hmyprograming/archive/2012/05/20/2511002.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值