检测 DEBUG、RELEASE 和我自己的模式 C#

我有 DEBUG、RELEASE 和 MYMODE 配置模式。我怎样才能检测到它们?


#if DEBUG

#endif

只检测 DEBUG 和其他任何东西,但不检测 RELEASE 和 MYMODE 之间的区别。我该怎么做?


更多信息:


我在想这样的事情:


#if DEBUG

#elif RELEASE

#elif MYMODE

但是如果我有 RELEASE 或 MYMODE,代码的所有部分都是灰色的,只有在 DEBUG 模式下,DEBUG 部分是彩色的。我也试过


#define MYMODE

但是为此, MYMODE 始终为 true 并不影响设置的模式。


小怪兽爱吃肉
浏览 138回答 3
3回答

慕姐4208626

首先,您可以在#if以下位置使用布尔运算符:#if DEBUG || MYMODE…#endif其次,您可以使用#else和#elif来分解事物...#if DEBUG// Debug only#elif MYMODE || RELEASE// In either release or MYMODE#else// Otherwise#endif这两者的组合涵盖了大多数用例。

拉丁的传说

MyMode 是一种配置。但是,就其本身而言,它并没有定义任何条件编译符号。您可以通过项目编译设置1或通过将-define选项传递给 csc 来更改这些设置。如果您查看 Debug 配置的编译设置,您会发现DEBUG条件编译符号已经定义2,但RELEASERelease 配置中没有定义符号。不要求(正如您在上面会发现的那样)配置与其定义的符号之间存在任何关系。#if&nbsp;(和系列)被定义为与条件编译一起使用。1项目 -> 属性 -> 构建 -> 常规。2在某些版本的 Visual Studio 中,有一个专门的复选框,而不是在条件编译符号中列出,但效果是相同的。如果您卸载项目并检查 XML,您会发现所有常量都存储在<DefineConstants>元素中。

MMMHUHU

相同:#if MYMODE#endif#if RELEASE#endif或更复杂的:#if (DEBUG && MYMODE)#endif#if (!RELEASE && MYMODE)#endif
打开App,查看更多内容
随时随地看视频慕课网APP