扩展方法,可以在我们不修改原类的情况下,可以从外部给它注入一个方法,添加一个行为
需要注意是,扩展方法中 类和方法必须都是静态,并且在参数前面需要加入this关键字 即可通过 参数.方法() 方式进行调用
应用:对第三方空间扩展的时候进行使用
注意:如果原类里面出现同名方法,会执行原类里面的方法
注意:避免滥用
例:
Student类
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public void SayHi(Student stu)
{
Console.WriteLine("大家好,我是{0}号选手{1}",stu.Id,stu.Name);
}
}
扩展类Extend
public static class Extend
{
public static void MySayHi(this Student stu)
{
Console.WriteLine("大家好,我是{0}号选手{1},我是从扩展方法里面出来的", stu.Id, stu.Name);
}
}
调用
Student stu = new Student()
{
Id=11,
Name="张三丰"
};
//正常情况下 调用MySayHi
Extend.MySayHi(stu);
//因为加了this关键字,并且类和方法都是静态的
//所以扩展方法也可以这样调用
stu.MySayHi();
结果都是一样的
扩展方法,可以在我们不修改原类的情况下,可以从外部给它注入一个方法,添加一个行为
需要注意是,扩展方法中 类和方法必须都是静态,并且在参数前面需要加入this关键字 即可通过 参数.方法() 方式进行调用
应用:对第三方空间扩展的时候进行使用
注意:如果原类里面出现同名方法,会执行原类里面的方法
注意:避免滥用