只记录回忆点
自动实现的属性
从C#3.0起属性语法有了简化版本。
在属性中声明支持字段,并用取值方法和赋值方法来获取和设置该字段。由于这是十分常见的设计,而且代码比较琐碎;
所以,现在允许在声明属性时不添加取值或赋值方法,也不声明任何支持字段。
一切都自动实现。简化了写法,也使代码更易读。
此外,如未来需添加一些额外的代码,比如要在赋值方法中进行验证,那么虽然要修改现在的属性声明来包含实现,但调用它们的代码不必进行任何修改。
属性和字段的设计规范
一般原则是方法代表行动,而属性代表数据。
避免从属性取值方法抛出异常;
要在属性抛出异常时保留原始属性值;
如果不需要额外逻辑,要优先使用自动实现的属性,而不是属性加简单支持字段;
无论私有字段使用哪一种命名方案,属性都要使用PascalCase大小写规范;
考虑为支持字段和属性使用相同的大小写风格,为支持字段附加“-”前缀;
如果有意义的话,要为Boolean属性附加“Is”“Can”或“Has”前缀;
不要声明public或protected实例字段;