自动更新属性

时间:2016-11-09 09:32:06

标签: c# properties

我有一节课:

public class Car
{
     public string Color { get; set; }

        public string Speed { get; set; }

        public string Property3 { get; set; }
}

我希望在更新属性Property3Color时自动设置Speed的值

我想设置Property3的值,其中值ColorSpeed的连接用连字符分隔

这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

您可以在Property3的getter中指定 - 类似这样的内容:

public string Property3 
{
    get { return $"{this.Color}-{this.Speed}"; }
}

我假设您希望Property3只读取,所以我省略了上面示例中的setter

答案 1 :(得分:1)

你可以像这样设置getter属性

public string Property3 { 
   get { return Color + "-" + Speed; }
}

答案 2 :(得分:0)

您有两种方式:

在速度和颜色的设置器中更新依赖属性:

private string _Color;
public string Color
{
    get
    {
        return this._Color;
    }
    set
    {
        this._Color = value;
        this.Property3 = $"{this.Color}-{this.Speed}";
    }
}

private string _Speed;
public string Speed
{
    get
    {
        return this._Speed;
    }
    set
    {
        this._Speed = value;
        this.Property3 = $"{this.Color}-{this.Speed}";
    }
}
public string Property3 { get; set; }

依赖属性的get中的连接:

public string Property3
{
    get
    {
        return $"{this.Color}-{this.Speed}";
    }
}

概念差异非常明显:您是希望能够覆盖Property3还是只读它。