如果需要一个方法来完成某项功能,但原类中未有这个功能的方法,此时,就可以使用扩展方法来达到此目的。
扩展方法是静态方法,是类的一部分,但它实际上又没有放在源类中。
假定有一个Money类需要一个AddToAmount方法,但源Money类中未有源代码。此时 可以创建一个静态类,把方法AddToAmount 添加为一个静态方法,如:
对于扩展方法,第一个参数是要扩展的类型,它放在this 关键字的后面。这告诉编译器,这个方法是Money类的一部分。在扩展方法中,只可以访问扩展类型的所有公共方法和属性。
在执行扩展方法时,与执行扩展类型的方法是一样的执行。如:
Money cash=new Money();
cash.AddToAmount(16M);
如果扩展方法与类中的某个方法同名,扩展方法就从来不会被调用。