递减或递增十进制值

时间:2014-07-18 14:44:54

标签: c# decimal

在我的c#解决方案中我有:

private void DecrementProduct()
    {
        decimal? difference = this.Difference;

        this.Difference = new decimal?((difference.HasValue ?    difference.GetValueOrDefault() : new decimal(0))--);
    }

visual studio返回错误: 错误107:增量或减量运算符的操作数必须是变量,属性或索引器。

哪里有问题?

2 个答案:

答案 0 :(得分:4)

错误非常自我解释。您正在对值使用递减运算符,它需要是变量属性或索引器。

它类似于:

var foo = 10--;

你可能应该这样做:

this.Difference = difference - 1 ?? -1;

答案 1 :(得分:1)

private void DecrementProduct()
{
    if(this.Difference.HasValue)
        this.Difference = this.Difference.Value - 1M;
    else
        this.Difference =  -1M;
}