我有一个应用程序,我在其中使用编译器开关来控制是否包含大块代码。想想自动变速箱或手动变速箱的汽车。在调试模式下工作正常,但在发布模式下,看起来自动变速箱和手动变速箱都已编译,所以汽车开得不太好......
那么我试图从编译器开关中获取选项控制功能是错误的吗?
更多细节:我对编译器开关的理解是有缺陷的。
下面评论中的简单项目。(不太擅长驱动 StackOverFlow)
继续类比,(Winform)项目是用手动变速器构建的。它是使用安装项目以调试模式部署的。(错误)。
几年后需要自动变速箱。(没有产生基类的共性)。当时的想法是有一天可能会再次需要手动变速箱)
似乎编译器开关是决定使用哪个代码块的好主意。自动传输版本再次以调试模式部署。
经过几年的运行,我决定应该发布它。那是我注意到问题的时候。
请求(谢谢)的简单示例向我表明,编译的不是两个块,只是#else 中的块。即发布版本将开关视为关闭。
因此,除非我遗漏了什么,否则答案是不言而喻的。不要将编译器开关用于部署选项。