C# 私有设置器
C#
中的属性是字段和方法的组合。它们不是变量,因此不能作为函数中的 out
或 ref
参数传递。
它们有助于控制对数据的访问,在编辑之前执行数据验证并促进更简洁的代码,因为它避免了在 getters
和 setters
的帮助下声明显式私有变量。
在深入探讨 private setter
的用法之前,让我们先讨论 getters
和 setters
的概念,然后慢慢过渡到 access modifiers
的角色。
在 C#
中使用 getters
作为获取访问器
getters
的代码在读取值时执行。由于它是对字段的读取操作,因此 getter
必须始终返回结果。
public
getter 意味着每个人都可以读取该属性。而 private
getter 意味着该属性只能由类读取,因此是一个只写属性。
我们必须根据我们的要求在 getter
之间进行选择。
在 C#
中使用 setters
作为 Set 访问器
setters
的代码在写入值时执行。
这是一个写操作,因此是一个 void 方法。它将字段的值作为参数。
该值可以以其当前形式分配给属性,或者我们可以在分配之前执行一些计算。
public setter
意味着该值可以被类外的任何对象编辑。另一方面,private setter
意味着该属性是只读的,不能被其他人修改。
现在我们知道了 getter
、setter
之间的区别以及 accessor modifiers
的影响,我们可以具体看一下 private setter
。
public int Prop
{
get; private set;
}
// The below code is the same as above, see the cleanliness use of auto property brings.
private int prop;
public int Prop
{
get { return prop; }
}
从上面的代码中我们可以看出,使用 private setter
不仅是一种好的编码习惯,而且使我们的代码具有内在的封装性。
封装
意味着我们类中的对象坚持一个接口并始终保持其状态。在这里,拒绝从外部编辑该属性会使类更加稳健和高效。
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn