c#3.0中的新自动属性有什么好处?

时间:2008-10-15 17:42:33

标签: c# properties .net

有什么好处:

public string User {get; set;}

public string User;

由于您无法在第一种情况下访问私人会员,因此仅将您的财产公开会有何不同?

2 个答案:

答案 0 :(得分:7)

第二个示例是将字段设为公开,而不是属性(您的问题)。这提供了一种简单的方法来制作简单的属性。属性应该是您的默认属性,而不是公共字段;原因列表是无止境的,但从以下开始:

  • 封装
  • 添加通知的能力
  • 封装
  • 进行验证的能力
  • 封装
  • 数据绑定
  • 封装
  • 安全检查
哦,我是否提到了封装?

事后从一个字段变为一个属性是一个重大改变 - 特别是如果你使用了很多“ref”代码或可变结构(如此)。

答案 1 :(得分:1)

当用户值更改时,您必须执行许多操作。您在设计课程时事先不知道或不在场的事情。 例如,有一天您意识到用户值应至少为5个字符。如果你拥有并且属性很容易实现。如果您有公共字段,则必须将其更改为property并重新编译所有相关代码。

从本质上讲,我认为明确区分我们类型的公共/ API部分和私有实现细节是值得的。

有人提到过封装吗? ;)