2

我使用简单的值,但我从未使用过值。(实体名称)。所以我对此感到困惑。我认为值用于获取当前值,但我在这里不明白。

  public Tax Tax
        {
            get
            {
                return _taxListing.Tax;
            }
            set
            {
                _taxListing.Tax = value;
                RaisePropertyChanged("Tax");

                Percent = value.Percent;
            }
        }

请解释一下。

4

2 回答 2

3

value是在 setter 中分配的值的特殊名称。它的类型与分配的属性的类型相同,在本例中为Tax.

无论您可以对任何其他类型的变量做什么Tax,都可以使用value. 因此,如果Tax有一个名为 的属性Percent,您可以将该属性作为value.Percent.

于 2012-05-20T01:33:48.523 回答
0

value保存已调用的作业的右侧。

例如:

myInstance.Tax = new Tax();

执行此操作时,value块中的set将等于实例化的new Tax()

因此,当您访问 时value.Percent,您正在访问被发送到设置范围的Percent属性。如果第一行是然后你做了而不是,new Tax()这将是完全相同的。this._tax = value;this._tax.Percentvalue.Percent

如果我有这样的财产:

public int Num
{
    get { return this._num; }
    set
    {
        this._num = value;
        // other logic...
    }
}

我这样做:

myInstance.Num = 41 + 1;

代码流程如下:

  1. 右侧一直执行,直到某个值作为结果返回:41 + 1 = 42

  2. 右侧结果 (42 * ) 设置到左侧。在这种情况下,这是一个属性,因此是第 3 步。

  3. 属性的setNum被输入,value将等于42

  4. 执行 set-block 内部逻辑,可能将值设置为某个私有成员等。


* 生命、宇宙和一切终极问题的答案。

于 2012-05-20T01:33:47.543 回答