C#基础知识 - 什么是预处理(#define、#if)
来源:网络收集 点击: 时间:2024-02-15《C# 指南 》中标识了如下预处理指令,依次理解演示。
#if
#else
#elif
#endif
#define
#undef
#warning
#error
#line
#region
#endregion
#pragma
#pragma warning
#pragma checksum

此四个指令组成一个系列
1、以#if指令开头的条件指令必须以#endif指令显式终止。
2、#if 、#else、#elif、#endif,允许基于“是否”“存在”一个或多个符号包括或排除代码。这在条件编译调试版本的代码或编译特定配置的代码时会很有用。
3、仅可以使用运算符==(相等)和!=(不相等)测试true或false。
4、可以使用运算符(and)、||(or) 和!(not) 评估是否已经定义了多个符号。
2/4此处演示#if、#endif,没有其他预编译指令时,可观察到MyTest处于未定义状态,那么#if(MyTest)下的语句不执行,不编译(代码处于灰色状态)

#if、#else、#elif、#endif,演示观察下,MyTest和MySign均处于未定义状态,可使用组成较复杂的条件编译。

与if、else、elif用法类似,同样是优先执行后,跳出if代码段。

#define定义符号。将符号用作传递给#if指令的表达式时,该表达式的计算结果为true
1、#define需要放在using之前使用
2、#define指令不能用于声明常量值
#undef允许定义符号,通过将该符号用作#if指令中的表达式,表达式将计算为false。使用类似#define


1、#define放在其他位置时
CS1032不能在文件的第一个标记之后定义或取消定义预处理器符号
2、#define指令不能用于声明常量值
CS1025应输入单行注释或行尾


生成系统还会感知表示不同目标框架的预定义预处理器符号。
因此在创建面向多个.NET 实现或版本的应用程序时,预处理符号会很有用。

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_44946.html