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

时间:2011-07-19 10:00:00

标签: c# asp.net

  

可能重复:
  Why use getters and setters?

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

3 个答案:

答案 0 :(得分:4)

使用getter和setter隐藏类的内部实现。这意味着在setter的set方法中,您可以运行整个算法来将输入数据解析为内部数据结构。您将能够在不影响用户的情况下更改您的实施。

现在,如果您将内部成员公开为公开,则无法再隐藏它们,并且您对类内部定义所做的任何更改都可能会破坏用户的使用。

答案 1 :(得分:3)

在C#中,首选方法是使用Properties

这样做的好处是它暴露了获取(或设置)数据的便捷方式,但没有暴露类的实现细节。

属性或getter或setter可以实现其他逻辑,例如:

  • 根据某些私有数据计算值(而不是直接返回值)
  • 检查并验证提供的数据(以防止溢出或超出范围输入)。

通过执行此操作,您可以从实现中将界面分离到您的类中,从而可以轻松地更改代码在内部的工作方式以及公共访问方式。

答案 2 :(得分:0)

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