自动更新属性

本文关键字:属性 更新 | 更新日期: 2023-09-27 18:16:59

我有一个类:

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

我想在更新属性ColorSpeed时自动设置Property3的值

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

自动更新属性

你可以在Property3的getter中这样指定:

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

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

你可以这样设置getter属性

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

有两种方法:

更新speed和color设置中的依赖属性:

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还是应该将其只读