为了账号安全,请及时绑定邮箱和手机立即绑定

我应该使用公共属性和私有字段或公共字段来获取数据吗?

我应该使用公共属性和私有字段或公共字段来获取数据吗?

慕神8447489 2019-08-23 09:28:41
我应该使用公共属性和私有字段或公共字段来获取数据吗?在我看过的大部分代码中(在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个赞

三个原因:

  1. 您不能像子属一样覆盖子类中的字段。

  2. 您最终可能需要更复杂的getter或setter,但如果它是一个字段,更改它会破坏API。

  3. 惯例。这就是它的完成方式。

我确信有更多的理由我只是没想到。

在.Net 3.x中,您可以使用如下自动属性:

public int Age { get; set; }

而不是旧的学校方式自己像这样声明你的私人领域:

private int age;public int Age{
    get { return age; }
    set { age = value; }}

这使得它像创建一个字段一样简单,但没有突破性的变化问题(除此之外)。


查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 436 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信