我应该使用公共属性和私有字段或公共字段来获取数据吗?在我看过的大部分代码中(在SO上,我都会在我自己的代码中使用codeproject.com),我已经看到为一个类包含的每个私有字段创建公共属性,即使它们是最多的基本类型get; set;:private int myInt;public int MyInt {
get { return myInt; }
set { myInt = value }}我的问题是:这与以下方面有何不同:public int MyInt;如果我们应该使用属性而不是公共字段,为什么我们应该在这种特定情况下使用它们呢?(我不是在谈论更复杂的例子,其中getter和setter实际上做了一些特殊的事情,或者只有一个get或set(只读/写)而不仅仅是返回/设置私有字段的值)。它似乎没有添加任何额外的封装,只在IntelliSense中提供一个漂亮的图标,并放在类图中的特殊部分!
3 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
三个原因:
您不能像子属一样覆盖子类中的字段。
您最终可能需要更复杂的getter或setter,但如果它是一个字段,更改它会破坏API。
惯例。这就是它的完成方式。
我确信有更多的理由我只是没想到。
在.Net 3.x中,您可以使用如下自动属性:
public int Age { get; set; }
而不是旧的学校方式自己像这样声明你的私人领域:
private int age;public int Age{ get { return age; } set { age = value; }}
这使得它像创建一个字段一样简单,但没有突破性的变化问题(除此之外)。
- 3 回答
- 0 关注
- 436 浏览
添加回答
举报
0/150
提交
取消