C# 预处理器指令

C# 预处理器指令

一、什么是预处理指令

源代码指定了程序的定义,*预处理指令(preprocessor directive)*指示编译器如何处理源代码。例如,在某些情况下,我们希望编译器能够忽略一部分代码,而在其他情况下,我们希望代码被编译,这时我们就可以使用预处理指令了。

C++开发人员应知道,在C 和C++中预处理器指令非常重要,但是,在C#中,并没有那么多的预处理器指令,它们的使用也不太频繁。C#提供了其他机制来实现许多C++指令的功能,如定制特性。还要注意,C#并没有一个像C++那样的独立预处理器,所谓的预处理器指令实际上是由编译器处理的。尽管如此,C#仍保留了一些预处理器指令名称,因为这些命令会让人觉得就是预处理器。

二、基本规则

  • 预处理指令必须和C#代码在不同的行
  • 与C#语句不同,预处理指令不需要以分号结尾
  • 包含预处理指令的每一行必须与 ''#'' 字符开始(在#字符前可以有空格,在#字符和指令之间也可以有空格)
  • 允许行尾注释
  • 在预处理指令所在的行不允许有分隔符注释

示例

C# 复制代码
#region MyRegion
 
// 包含在 MyRegion 中的代码
 
 
#endregion

上面的代码定义了一个名为 MyRegion 的区域,可以在编辑器中折叠或展开这个区域

注意 ,使用 #region 指令定义的区域必须使用 #endregion 指令结束。

二、C# 预处理器指令列表

预处理器指令 描述
#define 它用于定义一系列成为符号的字符。
#undef 它用于取消定义符号。
#if 它用于测试符号是否为真
#else 它用于创建复合条件指令,与 #if 一起使用。
#elif 它用于创建复合条件指令。
#endif 指定一个条件指令的结束。
#line 它可以让您修改编译器的行数以及(可选地)输出错误和警告的文件名。
#error 它允许从代码的指定位置生成一个错误。
#warning 它允许从代码的指定位置生成一级警告。
#region 它可以让您在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块。
#endregion 它标识着 #region 块的结束。
相关推荐
用户7884773163415 小时前
WinForms 迁移 WPF:Upgrade Assistant 覆盖 30%,剩下 70% 我手写了六周
c#
寂寞的船20 小时前
【Unity知识速递】第13期 Unity 内存泄漏排查实战:从 Memory Profiler 到 Lua 引用泄漏的生产级全链路诊断
unity·junit·c#·游戏引擎·lua
大凡光学1 天前
交通卡口:大尺寸标定板在车牌识别相机视场角标定与畸变校正中的应用
数码相机·安防监控·机器视觉·标定板
用户3721574261352 天前
C# 提取 PDF 附件:包括文档附件和页面注释附件
c#
寂寞的船2 天前
【Unity Bug挑战】第12期 Awaitable 二次 await 死锁之谜 —— 为什么同一个异步操作等两次就卡死?
unity·c#·游戏引擎·bug
机器视觉V社区2 天前
CIS相机技术详解:从设备简介到原理应用
机器视觉·工业相机·pcb检测·自动化检测·cis相机·图像传感器
地平线智能驾驶开发者3 天前
征程6|用 hrt_model_exec 看清 YOLOv5x 的输入、原始输出和后处理
人工智能·yolov5·机器视觉
huaqianzkh3 天前
WinForm C#:循环修改控件UI闪烁卡顿?SuspendLayout / ResumeLayout 与 BeginUpdate 优化
开发语言·ui·c#
用户3721574261354 天前
C# 实现 Excel 单元格保护:锁定公式并允许编辑指定区域
c#·ai编程·编程语言
公子小六4 天前
基于.NET的Windows窗体编程之WinForms数据持久化(1)
windows·microsoft·c#·.net·winforms