预处理命令虽然不是可执行的语句,但其却是可以向编译器提供如何编译代码指令的语句。在使用预处理指令时要注意,过度使用会让代码很难读懂,如果使用不当还会使代码的某些部分成为只读属性。
C#预处理命令
#define 定义预处理变量,一旦定义了预处理变量,它可以再整个源文件中使用
#undef 取消预处理变量
#if if条件语句。对#if后面的条件进行判断,如果条件满足,则执行随后的代码
#elif else if条件语句的预处理版本
#region 给一个代码区域一个名称或标记
#endregion 与#region连用,表示所标记区域的代码结束
#line 最常用作一个元语言,让开发人员把行号给予某个代码行
#linedefault 用在#line语句的后面,返回默认的行号
#error 在编译代码时显式一个错误,并结束编译。其用途是防止预处理命令冲突
#warning 在编译程序时显示警告消息,一般用来提醒开发人员有关程序的一些信息
预处理命令不用分号断开,一般是一行上只有一条命令。编译器如果遇到一条预处理命令,就会假设下一条命令在下一行。
#define和#undef:告诉编译器存在给定名称的符号,其类似于声明一个变量,但这个变量并没有真正的值,只是存在而已,并且只在编译器编译代码时存在。当使用#undef命令时,如果符号不存在,就不发挥作用。同样,如果符号已经存在,#define也不起作用。
#if、#elif、#else、#endif:实现的功能与if选择结构有点相似,但它是在编译的时候实现那种功能。编译器遇到#if语句后,将先检查并查看符号是否存在。如果符号存在,就只编译#if块中的代码,否则就会忽略所有的代码,直到遇到匹配的#ednif指令为止。#else和#endif指令可以用在#if块中,含义非常直接,是嵌套在#if块中。
#warning和#error:当编译器遇到它们时,会分别产生一个警告或错误。如果编译器遇到#warning指令,会给用户显示#warning指令后面的文本,之后编译继续进行。如果编译器遇到#error指令,会立即退出编译,不会生成IL代码。
#line:可以用于改变编译器在警告和错误信息中显示的文件名和行号信息。将代码发送给编译器前,若使用某些软件包改变代码,使用这个指令就可以时期恢复为默认的。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。