decimal amountToAdd) { money.Amount += amountToAdd; } }

时间:2021-07-31 07:27:13

扩展要领是静态要领,它是类的一部分,但实际上没有放在类的源代码中 。 
下例中的 Money类需要一个要领 AddToAmount(decimal amountToAdd)。 
但是 ,由于某种原因,Money类源代码不能直接改削 。
此时必需做的所有事情就是创建一个静态类,把要领 AddToAmount()添加为一个静态要领

如果扩展要领与类中的某个要领同名 ,就 从来不会挪用扩展要领。类中已有的任何实例要领优先

class Program

{
static void Main(string[] args)
{
Money cash1 = new Money() { Amount = 40 };
Console.WriteLine(cash1.ToString());
cash1.AddToAmount(20);
Console.WriteLine(cash1.ToString());
Console.ReadKey();
}

}
public class Money
{
private decimal amount;

public decimal Amount { get => amount; set => amount = value; }

public override string ToString()
{
return "$"+ Amount.ToString();
}
}


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