如何确定变量是动态增加还是减少/检测变化

时间:2013-12-09 23:55:34

标签: c# variables math memory-address

所以,我试图找出,如何确定我的变量是否正在变化,是增加它的价值,还是减少它。我知道我可以使用一个变量来存储旧值,但在这种情况下它不是一个选项。

int variable = 0;
variable = 1;
if(variable has increased) {
      //Do Magic stuff
}

基本上,我会怎么想这样做。我不知道这种方式是否可行,没有旧值的容器,但我认为可能有一个C#函数可以解决这个问题,可能是一个内存地址?

我还没有弄清楚,这种方法或技术的调用方式也是如此,所以对此也很了解。

2 个答案:

答案 0 :(得分:5)

使变量成为属性(在类中)。

在该属性的setter中,记录变量每次设置时是增加还是减少。

例如:

class Class1
{
    private int _counter;
    private int _counterDirection;

    public int Counter
    {
        get { return _counter; }

        set
        {
            if (value > _counter)
            {
                _counterDirection = 1;
            }
            else if (value > _counter)
            {
                _counterDirection = -1;
            }
            else
            {
                _counterDirection = 0;
            }
            _counter = value;
        }
    }

    public int CounterDirection()
    {
         return _counterDirection;
    }
}

答案 1 :(得分:2)

    class Program
    {
    private int _variableValue;
    private bool _isIncreasing;

    public int Variable
    {
        get
        {
            return _variableValue;
        }
        set
        {
            _isIncreasing = _variableValue <= value;
            _variableValue = value;
        }
    }

    void Main(string[] args)
    {

        Variable = 0;
        Variable = 1;
        if (_isIncreasing)
        {
            //Do Magic stuff
        }
    }
}