我有一大段代码经常需要跟踪信息输出,以便客户可以帮助调试输出 - 它非常面向数学。
出于性能原因,我绝对不希望在生产中启用跟踪,但是必须经常评论它变得很麻烦。
我刚刚设置了这样的代码......
using System.Diagnostics;
const bool TRACING_ENABLED = false;
//math math math....
Trace.WriteLineIf(TRACING_ENABLED, "Minimum Nitrogen Yield: " + minYieldNitrogen);
Trace.WriteLineIf(TRACING_ENABLED, "Minimum Water Yield: " + minYieldWater);
Trace.WriteLineIf(TRACING_ENABLED, "Minimum Seed Yield: " + minYieldSeed);
//more math math trace math trace math...
我的问题是......这是启用和禁用跟踪以进行调试的最佳方法吗?这些类型的行分散在整个代码中,所以我希望不必if
为了家务而在它们周围包装块或任何东西。
编译器是否会在程序集中优化这些行,因为它们是false
在构建时提供的常量?
感谢您的洞察力!