#if DEBUG 和 if (env.IsDevelopment()) 的用法区别

咨询区

  • webwake

我发现预处理指令 #if DEBUGAsp.NET Core环境变量名 都可以用于区分 debug/developmentrelease/production 下的不同行为,请问他们都有哪些合适的应用场景?比如说某些场景下应该使用 预处理指令 而不是 环境变量

  1. 使用 #if DEBUG


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{#if DEBUGapp.UseDeveloperExceptionPage();app.UseBrowserLink();#elseapp.UseExceptionHandler("/Error");#endif
}
  1. 使用 env.IsDevelopment()


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{if (env.IsDevelopment()){app.UseDeveloperExceptionPage();app.UseBrowserLink();}else{app.UseExceptionHandler("/Error");}
}

回答区

  • Ron Beyer

预处理指令是带有条件式的编译行为,比如下面的例子。


#if DEBUG//Do something
#endif

一旦你设置了 DEBUG 符号,那么 #if 语句中的代码将会被编译器检查和编译,此外在IDE中预处理指令都是灰色显示的。


if (env.IsDevelopment())
{//Do something
}

上面的代码在 release/debug 环境下都可以被编译,往复杂的说,上面的代码会有两个副作用。

  • 程序执行代码更慢

  • 程序的文件更大

总的来说,它更关注的是程序所处的执行环境,和程序的编译方式无关,同时要注意不要在生产环境下跑开发或者测试环境代码,你有可能会泄漏商业机密以及其他重要的信息。

点评区

我个人感觉他们的核心差异在于。

  • 预处理指令:关注的是程序的内部环境。(debug 还是 release)

  • 环境变量: 关注的是程序的外部环境。(测试环境 还是 生产环境)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构 【实验3 链表基本操作】

实验3 链表基本操作 实验目的 1. 定义单链表的结点类型。 2. 熟悉对单链表的一些基本操作和具体的函数定义。 3. 通过单链表的定义掌握线性表的链式存储结构的特点。 4. 掌握循环链表和双链表的定义和构造方法。 实验内容 该…

第一次找工作感受!

20号南京有招聘会,我和几个同学就去了,去体验一下找工作是什么样子的,可能大家从第二天的报纸上已经看到了,不过如果你没有去现场,那种人山人海,直接要排山倒海,招聘单位写的什么基本上看不清了.. 转到上午10点一份没投,心里那个急,心想只要能要就行了,好像投出去就找到工作一样…

猪肉上的红章和蓝章有啥不同?| 今日趣图

全世界只有3.14 %的人关注了青少年数学之旅亲眼看到金字塔你才会意识到它有多大!(图源光消失的地方,侵权删)你女朋友的脸皮有多厚?(图源程序员新视界,侵权删)猪肉上的红章和蓝章有啥…

CSS工具列表

用户界面 I Like Your Color输入URL然后它会抓出其中的颜色并用16进制表示。CSS Multi-element Rollover Generator使用CSS和一个图片创建出一个翻转按钮的样式。CSS Rounded Box GeneratorRuthsarian Layouts6个CSS页面布局模板,包括颜色、标题等。Bluerobot Layou…

【开源】这可能是封装微信 API 最全的 .NET SDK 了

缘起今年公司某个项目需要全面接入微信支付 V3 版 API。起初觉得,2014 年微信支付就已上线了 V3 版 API,这都 2021 年了,就算官方不给力,怎么着社区也该有几个造好的 .NET 的轮子了吧?于是兴冲冲地到 NuGet 上开始搜索…

【Vegas原创】变换VS2005默认浏览器方法

右键任何aspx文件,在浏览方式中选择

如何避免和人尬聊?

全世界只有3.14 %的人关注了青少年数学之旅想要和别人有聊不完的话题?当然是多读书多看新闻了解新鲜有趣的事物啦如果你没有时间去阅读那么关注以下公号将会让你收获更多信息~长按二维码,选择“识别图中二维码”订阅。▼看鉴ID:kanjian6666▲长按二维码“…

java 中的 io 系统总结

Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的…

在VS Code中执行SQL查询,是怎样一种体验?

上次,我们演示了“如何使用Nuget包XPlot.Plotly.Interactive在.NET Interactive notebook中绘制图表”。这次,我们使用Nuget包Microsoft.DotNet.Interactive.SqlServer演示在.NET Interactive notebook中如何和SQL Server交互。安装Nuget包首先&#xff…

UVA 11090 Going in Cycle!! 二分答案 + bellman-ford

求平均值最小的环&#xff0c;如果平均值最小为x&#xff0c;则如果把每条边的权值都减(x1)&#xff0c;那么新图将会有负环&#xff0c;用bellman ford判断。 //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstri…

突发奇想:flash+.Net+数据库的一种构思

大家好!我是冯波!一个刚刚学了点编程的小伙子&#xff0c;爱好比较广泛。除了像其它男生那样喜欢踢足球&#xff0c;打篮球以外&#xff0c;自己也非常喜欢军事。什么《孙子兵法与三十六计》啊&#xff0c;《三国演义》啊总是百看不厌&#xff0c;就是没看过《武穆遗书》&#…

大数据:数据合集,你想要的或许这里都有

大数据时代&#xff0c;用数据做出理性分析显然更为有力。做数据分析前&#xff0c;能够找到合适的的数据源是一件非常重要的事情&#xff0c;获取数据的方式有很多种&#xff0c;不必局限。下面将从公开的数据集、爬虫、数据采集工具、付费API等等介绍。给大家推荐一些能够用得…

骗人的数学题,那消失的1块钱到底被谁拿走了

全世界只有3.14 %的人关注了青少年数学之旅1、失踪的正方形

小语

1. 正所谓圣人云&#xff1a;“无农不稳&#xff0c;无商不富”&#xff0c;“民无利则国不富&#xff0c;民不富则国无税&#xff0c;国无税则兵不强&#xff0c;兵不强则天下危”。 2. 播下一个行动&#xff0c;收获一种习惯&#xff1b;播下一种习惯&#xff0c;收获一种性格…

MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN

在Membership系列的最后一篇引入了ASP.NET Identity&#xff0c;看到大家对它还是挺感兴趣的&#xff0c;于是来一篇详解登录原理的文章。本文会涉及到Claims-based&#xff08;基于声明&#xff09;的认证&#xff0c;我们会详细介绍什么是Claims-based认证&#xff0c;它与传…

2018年最受大家欢迎的五大机器学习工具和五大数据学习工具

2018年将会是人工智能和机器学习快速发展的一年&#xff0c;有专家表示&#xff1a;相较之下Python比Java更加接地气&#xff0c;也自然而然地成为机器学习的首选语言 在数据科学方面&#xff0c;Python的语法与数学语法最为接近&#xff0c;因此是数学家或经济学家等专业人士…

一步一步SharePoint 2007之四十三:实现自定义Workflow(2)——设置配置文件

下面将记录每一步的操作过程。1、首先采用Reflector等工具找到上一篇文章编译后的DLL的Assembly信息。2、找到并打开C:\Inetpub\wwwroot\wss\VirtualDirectories\9001\web.config文件&#xff0c;在System.Workflow.ComponentModel.WorkflowCompiler节点下的authorizedTypes中&…

动手造轮子 —— dotnet-HTTPie

动手造轮子 —— dotnet-HTTPieIntroHTTPie 是一个基于 Python 的 HTTP CLI 工具&#xff0c;这也意味着想用 HTTPie 就需要安装 Python 环境&#xff0c;不想装 Python 环境&#xff0c;于是想用 C# 也写一个类似的东西&#xff0c;HTTPie 的语法很简单、简洁而且功能强大&…

基于JavaScript技术的横排文字转古书式竖排工具

基于JavaScript技术的横排文字转古书式竖排工具 此工具可以把普通横排文字转换为古典的竖排由右至左的方式显示&#xff0c;并且增加适当的线标&#xff0c;方便读者阅读。您可以在论坛、博客发言之前用这个工具把要发表的文章转化&#xff0c;然后再粘贴到要发表的论坛、博客上…