作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要向我的应用程序添加一些日志记录,它需要处于 Release模式,我需要确保日志记录代码没有在生产环境中运行。因此,我想使用 #define 和 #if 来确保在我进入生产环境时删除日志语句。
问题是,我需要登录多个文件,而且在每个文件的顶部放置一个#define 很痛苦。有没有办法有一个集中的#define?这样我就可以从所有文件中删除单个 #define 而不是 #define(这意味着我几乎肯定会忘记一个)。
最佳答案
在命令行上,使用/define
开关。在 Visual Studio 中,从项目的属性页中选择“生成”选项卡,然后填写“条件编译符号”部分。
还可以考虑不使用条件编译,而是让您的日志记录方法成为条件方法。这是一个看起来更令人愉快的选择。这就是 Debug.Assert 的工作原理;它是一种条件方法,因此如果未定义调试预处理器符号,编译器会在代码生成之前简单地删除对该方法的所有调用。
另请参阅我关于该主题的文章:
关于c# - 我可以从中央文件设置 C# 预处理器指令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8508865/
我是一名优秀的程序员,十分优秀!