建议96:成员应优先考虑公开基类型或接口

建议96:成员应优先考虑公开基类型或接口

类型成员如果优先考虑公开及类型或接口,那么会让类型支持更多的应用场合。

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个建议》陆敏技

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值