为什么我们使用带访问器的私有字段?

时间:2014-08-09 01:52:23

标签: c#

私有字段只能从它所存在的类中访问。

如果我们可以使用属性从类外部访问私有字段,我们为什么要使用私有字段?这不是打败了一个私人领域的目的吗?

3 个答案:

答案 0 :(得分:1)

简单地说,班级将完全控制:

<强> SETTER
要验证参数,设置数据备选方案或最坏的控制/抛出异常。

<强>吸气剂
返回的值没有任何范围问题,并保证: 值是合适的,默认(如果没有设置),可以根据类对象状态进行控制。

否则,如果必须重新定义,则类对象存在设置错误值的风险,或者如果必须检查该值,则存在创建错误的风险。

总之,数据值可以由类专门控制和隔离(或者另外通过将其设置为受保护,因此扩展程序类可以提供其他功能)。

答案 1 :(得分:0)

拥有一个getter和setter的想法是你已经抽象了一些逻辑,并且如果你认识到在访问一个字段时你需要执行额外的逻辑就更容易了。

答案 2 :(得分:0)

具有私有支持字段的属性非常有用,因为您可以控制通过访问者访问私有字段的方式

可以通过一个简单的例子来解释。假设您想要将星期几表示为整数值,那么任何高于7的数字都没有任何意义。因此,您可以使用访问器阻止无效值。

int _dayOfWeek;
public int dayOfWeek
    {
        get
        {
            return _dayOfWeek;
        }
        set
        {
            if (value > 0 && value < 8) _dayOfWeek = value;
        }
    }

当然,您可以在访问者中拥有任何类型的逻辑,因此您可以更好地控制私有字段访问。 如果您将该字段声明为公共字段,则无法控制其访问权限。