基于硬编码值和属性值从类返回计算

时间:2017-02-05 16:57:45

标签: c# properties

如何返回计算值_B,其中一个参数是值_A和硬编码数据,例如“1”?

class Example
{
    private static int _A;
    private static int _B = _A + 1;

    public int GetA
    {
        get
        {
            return _A;
        }
        set
        {
            _A = value;
        }
    }

    public int GetB
    {
        get
        {
            return _B;
        }
    }
}

我总是回到“1”。

Example example = new Example();
example.GetA = 20; // set { }          
Console.WriteLine(example.GetB); // get { }

我希望得到21。

1 个答案:

答案 0 :(得分:0)

当您为与声明位于同一行的属性分配值时,该值仅设置一次。

您至少有两个选项,使用带箭头功能的新属性声明。或者在依赖属性的setter中设置值。

class Example
{
    private static int _A;
    private static int GetB => _A + 1;

    public int GetA
    {
        get
        {
            return _A;
        }
        set
        {
            _A = value;
        }
    }
}

或者

class Example
{
    private static int _A;
    private static int _B;

    public int GetA
    {
        get
        {
            return _A;
        }
        set
        {
            _A = value;
            _B = _A + 1;
        }
    }

    public int GetB
    {
        get
        {
            return _B;
        }

    }
}