第六章类(七)属性3提供属性验证、只读和只写属性、取值和赋值方法的访问修饰符

  只记录回忆点

  如果为LastName赋了无效的值,代码就会抛出异常。拦截赋值,并通过字段风格的API对参数进行验证,这是属性的优点之一。

  一个好的实践是从属性的实现中访问属性的支持字段。换言之,要一直使用属性,不要直接调用字段。

  可移除属性的取值方法或赋值方法来改变属性的可访问性。

  只有赋值方法的属性是只写属性,这种情况较罕见。C#6.0开始支持只读自动实现的属性。

  设计规范

  如果属性值不变,要创建只读属性;

  不要提供只写属性,也不要让赋值方法的可访问性比取值方法更宽松;