扩展方法
一、扩展方法引入
有个Person类,里面的成员如下:
1 public class Person 2 { 3 public string Name { get; set; } 4 5 public void SayHi() 6 { 7 Console.WriteLine("hello, i am sayhi"); 8 } 9 }
现在我想给Person类要增加个SayHello()方法,但是又不能改动Person类,怎么办?这时就可以用到扩展方法。
二、扩展方法的三要素及其使用
三要素:静态类,静态方法,this关键字。同时也要保证要增加扩展方法的类和扩展类在同一个命名空间下,如果不在,需要引用对应的命名空间。
1 //1.扩展方法三要素:静态类,静态方法,this 关键字。 2 //2.扩展类和要添加扩展方法的类,必须在同一个命名空间下 3 public static class PersonExtension 4 { 5 public static void SayHello(this Person obj) 6 { 7 Console.WriteLine("hello, i am {0} ",obj.Name); 8 } 9 }