zoukankan      html  css  js  c++  java
  • 【转】编写高质量代码改善C#程序的157个建议——建议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个建议》陆敏技

  • 相关阅读:
    nyoj--76--超级台阶
    nyoj--17--单调递增最长子序列
    poj-2406-Power Strings(KMP)
    poj-1611-The Suspects(并查集)
    poj 2031--Building a Space Station(prim)
    poj 3259-- Wormholes(SPFA)
    nyoj 21--三个水杯(隐式图bfs)
    HDU
    HDU
    CodeForces
  • 原文地址:https://www.cnblogs.com/farmer-y/p/7999362.html
Copyright © 2011-2022 走看看