属性结合了字段和方法的多个方面。对于对象的用户,属性显示为字段,访问该属性需要相同的语法。对于类的实现者,属性是一个或两个代码块,表示一个 get 访问器和/或一个 set 访问器。当读取属性时,执行 get 访问器的代码块;当向属性分配一个新值时,执行 set 访问器的代码块。不具有 set 访问器的属性被视为只读属性。不具有 get 访问器的属性被视为只写属性。同时具有这两个访问器的属性是读写属性。
1. 按照重构的理念,任何对字段的access,都应该通过接口(属性)实现,而不是通过直接access字段本身实现。包括在类内部使用也应遵循这个规则!!! 2. 当你向外部公开一个属性时,你公开的是一个接口。属性只是从编程语言角度而言,与字段一一对应的。可是事实上,外部程序不需要也不应该知道你公开的接口与你内部的字段有什么关系。把属性做为一个接口使用,不要与你内部的字段相对应。(如果你在一个属性如FileA的注释里面写:Accessor of filed a,这是一个相当坏的习惯。应该写成:Set/Get the xxx property)