1、尽可能使用属性(Property),少使用字段(Field)实现对数据的访问

1、property本质上是两个函数set和get,在访问数据时可以对数据进行检查和操作,而field不支持;
      a、property实现安全检测
            在对数据进行检测时,当数据不符合条件时,最好以抛异常的形式来处理,不要给数据设置默认值。如下例所示。
      当给Name赋空值时,如果给_name数据设置默认值NoName,这是相当危险的。试想我们现在有两个实例分别为man1、man2,man1的Name为null,执行man2.Name = man1.Name,结果是man1.Name 为 "NoName",man1和man2的名字不相等;
      b、property实现多线程同步的访问数据。

Code
2、.Net的特性支持对property的数据绑定,而不支持对field的数据绑定。其数据绑定机制事实上是使用反射来查找一个类型中对应的属性。例如下面的代码:
      nameTextBox.DataBindings.Add("Text",person, "Name");      
      而有的初学者往往会犯这样的错误:将field直接绑定到GridView或者TreeView控件上;

3、property支持抽象,field不支持抽象;

4、接口支持property,而不支持field;

5、.Net支持基于property索引,而不支持field索引;

Code
6、综合以上几点,告诉我们不要直接把field改成property,此外我们应该尽量使用属性来实现对数据的公有、保护访问。

你可能感兴趣的:(property)