编写高质量代码改善C#程序的157个建议——建议96:成员应优先考虑公开基类型或接口
2015-08-20 15:46
651 查看
建议96:成员应优先考虑公开基类型或接口
类型成员如果优先考虑公开及类型或接口,那么会让类型支持更多的应用场合。
FCL中最典型的例子是集合的功能操作。集合根据功能划分有多种类型,比如List<T>、Dictionary<TKey,TValue>、HashSet<T>等。以一个最简单的操作Empty(清空集合)为例。该功能要求我们删除集合中的所有元素,然后返回一个干净的集合。如果不返回基类型或接口的话,则要求我们为每一个集合类型都实现一个这样的方法。
微软在FCL中实现了这样一个静态类型Enumerable,它有个静态方法:
因为使用了泛型接口IEnumerable,所以现在所有的集合子类都可以实现自己的Empty方法了。我们应该体会这种编程模式带来的好处,并在自己的项目中灵活运用。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
类型成员如果优先考虑公开及类型或接口,那么会让类型支持更多的应用场合。
FCL中最典型的例子是集合的功能操作。集合根据功能划分有多种类型,比如List<T>、Dictionary<TKey,TValue>、HashSet<T>等。以一个最简单的操作Empty(清空集合)为例。该功能要求我们删除集合中的所有元素,然后返回一个干净的集合。如果不返回基类型或接口的话,则要求我们为每一个集合类型都实现一个这样的方法。
微软在FCL中实现了这样一个静态类型Enumerable,它有个静态方法:
public static IEnumerable<TResult> Empty<TResult>() { return EmptyEnumerable<TResult>.Instance; }
因为使用了泛型接口IEnumerable,所以现在所有的集合子类都可以实现自己的Empty方法了。我们应该体会这种编程模式带来的好处,并在自己的项目中灵活运用。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
相关文章推荐
- C# ManualResetEvent 类的用法
- c#多态的简单练习
- 编写高质量代码改善C#程序的157个建议——建议95:避免在构造方法中调用虚成员
- C#模拟PrtScn实现截屏
- C#模拟PrtScn实现截屏
- C# String.Format格式说明
- 编写高质量代码改善C#程序的157个建议——建议94:区别对待override和new
- 关于C# byte[]与struct的转换
- 编写高质量代码改善C#程序的157个建议——建议93:构造方法应初始化主要属性和字段
- 编写高质量代码改善C#程序的157个建议——建议92:谨慎将数组或集合作为属性
- C# char[]与string之间的相互转换
- C# log4net 不输出日志
- C#跨平台吗
- 编写高质量代码改善C#程序的157个建议——建议91:可见字段应该重构为属性
- C#线程同步自动重置事件——AutoResetEvent
- C#是怎么获取窗口标题的
- C# 对象锁
- C#数据绑定(DataBinding)简单实现方法
- C#Linq语句与List结合使用
- C# DataGridView设置某一格为组合框