C# 私有设置器

Harshit Jindal 2023年10月12日
  1. C# 中使用 getters 作为获取访问器
  2. C# 中使用 setters 作为 Set 访问器
C# 私有设置器

C# 中的属性是字段和方法的组合。它们不是变量,因此不能作为函数中的 outref 参数传递。

它们有助于控制对数据的访问,在编辑之前执行数据验证并促进更简洁的代码,因为它避免了在 getterssetters 的帮助下声明显式私有变量。

在深入探讨 private setter 的用法之前,让我们先讨论 getterssetters 的概念,然后慢慢过渡到 access modifiers 的角色。

C# 中使用 getters 作为获取访问器

getters 的代码在读取值时执行。由于它是对字段的读取操作,因此 getter 必须始终返回结果。

public getter 意味着每个人都可以读取该属性。而 private getter 意味着该属性只能由类读取,因此是一个只写属性。

我们必须根据我们的要求在 getter 之间进行选择。

C# 中使用 setters 作为 Set 访问器

setters 的代码在写入值时执行。

这是一个写操作,因此是一个 void 方法。它将字段的值作为参数。

该值可以以其当前形式分配给属性,或者我们可以在分配之前执行一些计算。

public setter 意味着该值可以被类外的任何对象编辑。另一方面,private setter 意味着该属性是只读的,不能被其他人修改。

现在我们知道了 gettersetter 之间的区别以及 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
Harshit Jindal avatar Harshit Jindal avatar

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