c# - 什么时候在 .net 中使用预处理器指令?

标签 c# .net c-preprocessor preprocessor-directive

我认为这是一个简单的问题,所以我想我遗漏了一些明显的东西。我从来没有真正使用过预处理器指令,但我在查看某人的代码时认为它是我应该熟悉的东西。

所以我看了msdn例子here它有代码:

#define DEBUG
// ...
#if DEBUG
    Console.WriteLine("Debug version");
#endif

我的两个问题是:

  • 在上面的例子中,他们为什么要定义 DEBUG?如果您在调试与 Release模式下编译,我的印象是设置了吗?
  • 查看另一个包含 #define MYTEST 的示例,然后根据它是否“已定义”写入控制台,但这与仅使用变量有何不同?我在这里缺少什么?

最佳答案

我实际上建议使用条件属性而不是内联 #if 语句。

[Conditional("DEBUG")]
private void DeleteTempProcessFiles()
{
}

这不仅更清晰、更易于阅读,因为您最终不会在代码中包含#if、#else。这种风格在正常代码编辑和逻辑流程错误中不太容易出错。

关于c# - 什么时候在 .net 中使用预处理器指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4222338/

相关文章:

c# - 列出 1...n 之间的 k 个整数的所有可能组合(n 选择 k)

c# - 如何确定哪些逻辑核心共享同一个物理核心?

c# - 如何获取可变字符串列表?

c# - 如何检查我在 Web 应用程序中是处于调试版本还是发布版本?

c# - WCF从客户端发送int[]到服务器

.net - ToolStrip的RenderMode属性如何处理?

.net - Windows 工作流版本 4 和 Visual Studio 2008

c++ - 为什么在宏中使用看似毫无意义的 do-while 和 if-else 语句?

c++ - 在 C++ 中,使用 #define 还是 const 来避免魔数(Magic Number)更好?

C语言 : how to interpret this #define?