我们必须用用户输入值来计算许多不同的固定因素。每一次计算都有不同的最小值。
这段代码
result.Calculation_VK = input.km_past_year * 0.040m;
if (result.Calculation_VK <= 300)
result.Calculation_VK = 300;
result.Calculation_VK *= Constant.MWST;用不同的常数因子和输入变量一次又一次地重复。我的问题是,能不能简化线路
if (result.Calculation_VK <= 300)
result.Calculation_VK = 300;同时保持代码的可读性?
我们尝试使用?运算符,但这并不能真正清理代码。尤其是考虑到这些线条会被一遍又一遍地重复。
result.Calculation_VK = input.km_past_year * 0.040m <= 300 ? 300 : result.Calculation_VK * 0.040m;
result.Calculation_VK *= Constant.MWST;我考虑在getter中创建带有默认值的属性。但是,当我们使用通过几个类和方法共享的公共和可重用对象时,它将导致为每个方法创建对象。
据我理解,这将取消使用对象将所需值传递到计算中的优势。
发布于 2018-08-23 08:29:34
好吧,最简单的方法是像这样使用Math.Max()
result.Calculation_VK = Math.Max(input.km_past_year * 0.040m, 300) * Constant.MWST 在类似这样的方法中
public static decimal CalculateVK(decimal pastYear, decimal factor, decimal minValue)
{
return Math.Max(pastYear * factor, minValue) * Constant.MWST;
} 被称为
result.Calculation_VK = CalculateVK(input.km_past_year, 0.040m, 300);https://codereview.stackexchange.com/questions/202288
复制相似问题