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