C#3.0中增加了"扩展方法"这一代码扩展机制。对于已有类型,想对其进行扩展,但由于某种原因,不方便直接对源码进行修改,那么就可以通过扩展方法这一机制,将原类型的扩展方法写在其他类型中完成扩展,这样大大增强了C#语言的代码扩展方式,使用起来非常方便。
要使用扩展方法这一机制,值得注意的地方有:扩展方法不能访问原类型的私有数据、扩展方法只能写成静态类的静态方法形式、扩展方法的允许有参数、扩展方法参数的第一个参数前需加"this"、扩展方法只能通过原类型对象来调用等。
示例如下:
public class EmployeeModel
{
private int _basePay = 950;
public int Age
{
get
{
return _basePay;
}
}
}
public static class SampleModelExtensions
{
public static int GetTotalPay(this EmployeeModel model, int normalPay)
{
return model.Age + normalPay;
}
}
{
private int _basePay = 950;
public int Age
{
get
{
return _basePay;
}
}
}
public static class SampleModelExtensions
{
public static int GetTotalPay(this EmployeeModel model, int normalPay)
{
return model.Age + normalPay;
}
}
调用代码为:
EmployeeModel model = new EmployeeModel();
int TotalPay = model.GetTotalPay(350);
this.Literal.Text = "TotalPay:" + TotalPay.ToString();
int TotalPay = model.GetTotalPay(350);
this.Literal.Text = "TotalPay:" + TotalPay.ToString();
最终结果:TotalPay:1300