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实现多线程同步的访问数据。

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

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

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

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

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

相关文章:

  • 2021-07-02
  • 2022-01-06
  • 2022-03-08
  • 2022-03-04
  • 2021-05-23
  • 2021-05-27
  • 2021-11-06
  • 2021-08-08
猜你喜欢
  • 2021-05-25
  • 2021-06-11
  • 2021-09-15
  • 2021-11-22
  • 2022-12-23
  • 2021-12-22
相关资源
相似解决方案