扩展方法

一、扩展方法引入

有个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     }
View Code

现在我想给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     }
View Code
原文地址:https://www.cnblogs.com/wesley168/p/6797352.html