我不明白需要有从 C# 2 开始的私有设置器。
对我来说,有一个 setter 方法可以让用户在该类中设置一些变量。这样做时,我们不会将变量直接暴露给用户。相反,我们让他们通过这个公共 setter 方法来完成此操作。
这对我来说是使用“封装”。有一些论点声称私有设置器将允许您应用封装。
我不是通过使用公共 setter 方法来使用封装吗?为什么我们需要私人设置者?
不可变类和具有私有设置器的类有什么区别?
从逻辑上讲。
私有 setter 的存在是因为您可以使用 auto 属性:
public int MyProperty { get; set; }
如果你想将其设为只读,你会怎么做?
public int MyProperty { get; }
哦糟糕!我无法从我自己的班级访问它;我应该像普通属性一样创建它:
private int myProperty;
public int MyProperty { get { return myProperty; } }
嗯...但是我失去了“自动属性”功能...
public int MyProperty { get; private set; }
啊啊..那就更好了!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)