一尘不染

我应该使用公共属性和私有字段还是公共字段作为数据?

c#

在我见过的许多代码中(在SO,thecodeproject.com上,我倾向于在自己的代码中执行此操作),我看到为类包含的每个私有字段创建了公共属性,即使它们是最多的基本类型get; set;如:

private int myInt;
public int MyInt 
{
     get { return myInt; }
     set { myInt = value }
}

我的问题是:这与以下内容有何不同:

public int MyInt;

如果我们应该使用属性而不是公共字段,那么为什么要在这种特定情况下使用它们?(我不是在谈论更复杂的示例,在这些示例中,getter和setter实际上做了一些特殊的事情,或者只有一个get或set(仅读/写),而不仅仅是返回/设置私有字段的值)。它似乎没有添加任何额外的封装,仅在IntelliSense中提供了一个漂亮的图标,并放在类图中的特殊部分!


阅读 347

收藏
2020-05-19

共1个答案

一尘不染

看到这篇文章http://blog.codinghorror.com/properties-vs-public-
variables/

特别

  • 反射在变量和属性上的工作方式不同,因此,如果您依赖反射,则使用所有属性会更容易。
  • 您无法与变量进行数据绑定。
  • 将变量更改为属性是一项重大更改。
2020-05-19