扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中。由于某种原因,程序集最初的源代码不能直接修改。此时必须做的所有工作就是创建一个静态类
1 namespace Wrox 2 { 3 public static class MoneyExtension 4 { 5 public static void AddToAmount(this Money money, decimal amountToAdd) 6 { 7 money.Amount += amountToAdd; 8 } 9 } 10 }
注意AddToAmount()方法的参数。对于扩展方法,,第一个参数是要扩展的类型,它放在this 关键字的后面。这告诉编译器,这个方法是Money 类型的一部分。在这个例子中,Money 是要扩展的类型。在扩展方法中,可以访问所扩展类型的所有公有方法和属性。