让我重新表述。我在ForEach循环里面应该添加计算小数?值到小数?当你指出时,originalAmount当然是第一次为null。 所以我只需要先检查null,否则再添加。
decimal? convertedAmount = Calculate(inputValue); //always returns a value
originalAmount = originalAmount==null ? convertedAmount : originalAmount + convertedAmount;
在循环之外,之前定义了originalAmount。
对于这种混淆感到抱歉,如有必要,可以关闭/删除该问题。
答案 0 :(得分:6)
(来自评论)
我只希望originalAmount在convertedAmount有的情况下有一个值,否则它应该为null。
所以:
decimal? convertedAmount = ...
decimal? originalAmount = convertedAmount;
执行该要求中的所有操作。
你可能更详细,但这没有任何意义:
// unnecessary: don't do this:
decimal? originalAmount =
convertedAmount.HasValue ? convertedAmount.Value : (decimal?)null;
答案 1 :(得分:1)
当一个或两个值为null时,您需要指定添加的行为方式。建议尝试这样的事情:
decimal? convertedAmount = ...
decimal? originalAmount = ...
if (convertedAmount.HasValue)
{
originalAmount = originalAmount.GetValueOrDefault() + convertedAmount.GetValue;
}