创建相关属性的“列表”并传递给方法

时间:2015-04-01 23:59:25

标签: c#

我有一个包含许多相关属性的类,我需要运行一些简单的计算。一般结构是:

public class SpecialItem
{    
    public decimal Value { get; set; }
}

public class Processor
{
        public decimal CalcA { get; set; }
        public decimal CalcB { get; set; }
        public decimal CalcC { get; set; }

        public SpecialItem ItemA { get; set; }
        public SpecialItem ItemB { get; set; }
        public SpecialItem ItemC { get; set; }

        public decimal PrevCalcA { get; set; }
        public decimal PrevCalcB { get; set; }
        public decimal PrevCalcC { get; set; }

        public decimal DifferenceA { get; set; }
        public decimal DifferenceB { get; set; }
        public decimal DifferenceC { get; set; }

        private void Subtract()
        {//TODO}
}

我需要计算DifferenceA = PrevCalcA - ItemA.Value - CalcA,然后是DifferenceB = PrevCalcB - ItemB.Value - CalcB,依此类推。最好的方法是什么,理想情况下有一个简单的减法方​​法(例如:私有虚拟减法(小数a,小数b,小数c),可以在你给它一个" list&#34时顺序计算差异属性。 ;包含3个其他属性的组?

我拥有所有这些属性的原因是它们各自独立地绑定到ViewModel。

谢谢!

1 个答案:

答案 0 :(得分:0)

在我看来,最简单的方法是重新定义DifferenceX这样的属性:

    public decimal DifferenceA
    {
        get
        {
            return this.PrevCalcA - this.ItemA.Value - this.CalcA;
        }
    }

    public decimal DifferenceB
    {
        get
        {
            return this.PrevCalcB - this.ItemB.Value - this.CalcB;
        }
    }

    public decimal DifferenceC
    {
        get
        {
            return this.PrevCalcC - this.ItemC.Value - this.CalcC;
        }
    }

或者我在你的问题中遗漏了什么?