C#预处理器指令

#define和#undef

#define DEBUG
告诉编译器存在给定名称的符号。类似声明一个变量,但这个变量没有真正的值,只是存在。
#undef DEBUG
和#define正好相反--删除符号的定义,如果符号不存在,没有任何作用。如果符号存在,define不起作用。必须把#define和#undef命令放在C#源文件的开头位置,在声明要编译的任何对象的代码之前
#if、#elif、#else、#endif
点击查看代码
int DoWork(double x)
{
	#if DEBUG
		WriteLine($"x is {x}")
	#endif
编译器遇到#if指令,先检查相关符号是否存在,存在就执行编译,否则会忽略所有代码。执行完#if,完成调试后,会把#define指令注释掉,可执行文件会变小。也可以嵌套#if块。还支持逻辑运算符“!”、“==”、“!=”、“||”。
#warning和#error
编译器遇到#warning,会向用户显示指令后面的文本
遇到#error会向用户显示后面的文本,并立即退出编译,不会生成IL代码

image
image

#region和#endregion
这个指令用于把一段代码视为有名称的一个块
#line
可以改变编译器在警告和错误信息中显示的文件名和行号信息

image

#pragma
可抑制或还原指定的编译警告,可以在类和方法级别实现

image

posted @ 2022-06-24 11:01  Edmund2053  阅读(35)  评论(0编辑  收藏  举报