C#代码打包为NuGet包后计算结果异常求助
问题:NuGet包中条件判断函数返回结果异常
我有一个条件判断函数,本地测试运行时返回结果完全正确,但将其打包成NuGet包供其他项目引用后,偶尔会出现结果错误。例如:当逻辑上num=1且num2=0时,本应返回1,实际却返回了4。
构建后的近似代码
public int GetNumber() { int num = (condition1 ? 3 : (condition2 ? 1 : 2)); int num2 = (condition3 ? 6 : (condition4 ? 3 : 0)); return num + num2; }
已尝试的排查步骤
- 曾尝试在代码中添加中间变量辅助调试,但VS构建时会自动优化移除这些变量。
- 已通过设置断点尝试排查问题,但仍无法定位异常原因。
原始代码
public int Get9Box(Measurements measurements, Parameters parameters) { int bathBox = 0; int liquidusBox = 0; if (measurements.CurrentBathTemperature > parameters.BathTargetTemperature + parameters.DeadBand) { bathBox = 3; } else if (measurements.CurrentBathTemperature < parameters.BathTargetTemperature - parameters.DeadBand) { bathBox = 1; } else { bathBox = 2; } if (measurements.AverageLast4Liquidus > parameters.LiquidusTargetTemperature + parameters.DeadBand) { liquidusBox = 6; } else if (measurements.AverageLast4Liquidus < parameters.LiquidusTargetTemperature - parameters.DeadBand) { liquidusBox = 0; } else { liquidusBox = 3; } int result = bathBox + liquidusBox; return result; }
内容的提问来源于stack exchange,提问作者Blechle
相关产品推荐
相关产品推荐

