我不明白,为什么这些基类库有扩展方法?什么时候他们可以被添加到特定的类库本身?
有什么好处?区别 ?
>在类型已经发布后,可以在以后添加这些方法(而不是类型创作时间).>他们可以由不同的人写>扩展方法可以定位接口. (替代方案是使用具有这些方法的公共基类型或在每种类型中重新实现它们)>不同的人可以根据需要不同地扩展相同的类型.
正确使用扩展方法可以消除实际类型定义/实现中的正交混乱(而是将类型的核心功能集中在类型定义中).
以LINQ为例 – 通过为IEnumerable提供扩展方法,它可以针对大量已发布的类型(以及将来可能编写的大量类型);它分离了正交关注点,例如从实际类型中查询类型.