0

有什么好处:

public string User {get; set;}

超过

public string User;

既然在第一种情况下您无法访问私有成员,那么仅将您的财产公开有什么不同?

4

2 回答 2

7

第二个示例是将字段公开,而不是属性(您的问题)。这提供了一种制作简单属性的简单方法。属性应该是您的默认值,而不是公共字段;原因不胜枚举,但首先是:

  • 封装
  • 添加通知的能力
  • 封装
  • 进行验证的能力
  • 封装
  • 数据绑定
  • 封装
  • 安全检查

哦 - 我提到封装了吗?

事后从字段更改为属性是一项重大更改 - 特别是如果您使用大量“引用”代码或可变结构(yeuch)。

于 2008-10-15T17:47:52.477 回答
1

当用户值发生变化时,您必须做很多事情。您事先不知道或在设计课程时不存在的事情。例如,有一天您意识到用户值应该至少有 5 个字符长。如果你有财产,它很容易实现。如果您有一个公共字段,则必须将其更改为属性并重新编译所有相关代码。

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

有人提到封装吗?;)

于 2008-10-15T19:20:24.880 回答