当需要对已有类的功能进行扩展时,大多数开发人员通常会想到继承,继承已有类,然后为其加入新的行为。而C# 2008中加入的扩展方法特性,则提供了另一种实现功能扩展的方式,开发人员可以在不使用继承的前提下实现对已有类本身的扩展,这种方法并不会产生新的类型,而是采用向已有类中加入新方法的方式来完成功能扩展。
扩展方法使开发人员能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。对于用C#编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。