为什么要使用getter和setter方法来设置类属性?

4
在C#(ASP.NET)中,我们使用getter和setter方法来设置私有变量的属性,但是如果我们将该变量声明为公共变量,则可以完成相同的操作。因为一方面,我们通过将其声明为私有变量来限制用户访问该变量,而另一方面,我们通过使用getter和setter属性允许用户访问这些属性。我无法理解它的重要性。

请参见https://dev59.com/oHI_5IYBdhLWcg3wAeHl。 - Scott C Wilson
1
为了控制一个类中的变量在另一个类中的修改,我们可以将该变量设置为私有,以此来控制其值被修改的方式。例如,如果在另一个类中使用setter将变量修改为负数,我们可以抛出异常来防止其被设置为负数。这样做需要将变量转换为私有,并使用getter来访问该私有变量。 - karthik gorijavolu
3个回答

4
通过使用getter和setter,您可以隐藏类的内部实现。这意味着在setter的set方法中,您可以运行整个算法将输入数据解析为内部数据结构。您稍后可以更改实现而不会影响用户。
如果您将内部成员公开,则无法再隐藏它们,对类内部定义所做的任何更改都可能破坏用户的使用。

4
在C#中,首选的方法是使用Properties
这样做的好处是它提供了一种方便的方式来获取(或设置)数据,但不会暴露类的实现细节。
属性、getter或setter可以实现其他逻辑,例如:
- 基于某些私有数据计算值(而不仅仅是直接返回值) - 检查和验证提供的数据(以防止溢出或超出范围的输入)。
通过这样做,您将类的接口与实现分离,使您能够轻松地从公共访问方式更改代码的内部工作方式。

0

因为它允许您在继承类中覆盖这些属性,在以后的日期添加验证/ INotifyProperty更改处理程序,并保留版本之间的二进制兼容性


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接