首页 > 解决方案 > C# 属性,这是一个不好的做法吗?

问题描述

一般来说,我是 C# 和 OOP 的新手。我刚刚了解了 c# 中的属性——它有一个 get 和 set 方法。

从另一个属性的集合中更新一个属性是不好的做法,如下面的代码示例所示?

    private int _prop1;

    public int Prop1
    {
        get { return _prop1; }
        set { _prop1 = value; OnPropertyChanged("Prop1"); Prop2 = value; }
    }

    private int _prop2;

    public int Prop2
    {
        get { return _prop2; }
        set { _prop2 = value; }
    }

标签: c#properties

解决方案


如果两个属性都是读写的,我会说这是不好的做法,因为它可能会造成混乱。如果受影响的属性是只读的,那也没关系。这是一个好的例子:

public int LivesRemaining {get; set;}

public bool IsDead {get => LivesRemaining == 0}

设置LivesRemaining = 0将导致IsDead属性变为true。但这并不令人惊讶或令人困惑。


推荐阅读