服务器之家

服务器之家 > 正文

.net 预处理指令符的使用详解

时间:2021-12-10 15:40     来源/作者:大辉哥呀

什么是预处理指令符?

当C#编译器找到一条预处理指令#if,最后找到一条指令时,#endif仅在定义了指定符号的情况下,编译器才会在这些指令之间编译代码。与C和C ++不同,您不能将数字值分配给符号。#if C#中的语句为布尔型,仅测试符号是否已定义。

预处理指令符的使用

  • #if:打开条件编译,仅在定义了指定符号的情况下才编译代码。
  • #elif:根据是否定义了指定的符号,关闭前面的条件编译并打开新的条件编译。
  • #else:如果未定义先前指定的符号,则关闭之前的条件编译并打开新的条件编译。
  • #endif:关闭前面的条件编译。

条件编译(编译器会根据不同配置环境来执行):

?
1
2
3
4
5
6
7
8
#if DEBUG
      Console.WriteLine("我是debug 模式!");
#elif RELEASE
      Console.WriteLine("我是relsease 模式!");
#else
      Console.WriteLine("我是自定义模式!");
#endif
      Console.WriteLine("我是没有被任何预处理过得输出!");

当前解决方案编译环境为Debug

.net 预处理指令符的使用详解

输出结果:

.net 预处理指令符的使用详解

常用指令符:

.net 预处理指令符的使用详解

自定义指令符

举例:我们需要两个版本的代码,基础版、更多功能的企业版本。此时我们就可以通过自定义指令符来满足定制化功能。

  • #define 自定义指令符
  • #undef 删除指令符

.net 预处理指令符的使用详解

也可以通过属性的方式来执行方法

.net 预处理指令符的使用详解

使用Visual Studio快速定义指令符

VS站点-》右键-》属性-》生成-》常规

.net 预处理指令符的使用详解

定义生效后,通过csproj工程文件我们可以看到有两条PropertyGroup对应不同的Condition

.net 预处理指令符的使用详解

定义指令符区域

你还可以使用以下两个预处理程序指令定义可以折叠在大纲中的代码区域:

  • #region:开始一个区域。
  • #endregion:结束区域
?
1
2
3
4
5
6
7
8
#region MyClass definition
public class MyClass
{
  static void Main()
  {
  }
}
#endregion

参考链接

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/preprocessor-directives

https://blog.walterlv.com/post/how-to-define-preprocessor-symbols.html

https://www.cnblogs.com/woxihuadabai/p/8005892.html

到此这篇关于.net 预处理指令符的使用的文章就介绍到这了,更多相关.net 预处理指令符内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/cainiaodage/p/14622029.html

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部