C# 扩展方法 总结

扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中。

设计一个Money类

 1     public class Money
 2     {
 3         private decimal amount;
 4         public decimal Amount
 5         {
 6             get;
 7             set;
 8         }
 9         public override string ToString()
10         {
11             return "$" + Amount.ToString();
12         }
13     }

假设向Money类中添加一个方法AddToAmount,但是程序的源代码不能直接修改,此时就需要创建一个静态类,将方法AddToAmount()添加为一个静态方法,对应代码如下:

    public static class MoneyExtension
    {
        public static void AddToAmount(this Money money, decimal amountToAdd)
        {
            money.Amount += amountToAdd;
        }
    }

对于扩展方法,第一个参数是要扩展的类型,它放在this关键字的后面,这就告诉编译器,这个方法是Money类的一部分。

在执行新方法的时候,不需要第一个参数,如下:

 1 Cash1.AddToAmount(10M); 

即使扩展方法是静态的,也要使用标准的实例方法语法。

如果您觉得感兴趣的话,可以添加我的微信公众号:一步一步学Python
原文地址:https://www.cnblogs.com/xingzhui/p/5682159.html