首页 > 代码库 > C#容易被忽视的知识点(四)

C#容易被忽视的知识点(四)

19、扩展类

  例如想给某个类添加一个新方法,但由于某些原因,不能直接修改类的源代码,可以通过扩展类的方法实现。

  具体例子如下:

  假设有个类Show

 1     public class Show 2     { 3         public void MethodOne() 4         { 5             Console.WriteLine("MethodOne"); 6         } 7     } 8  9     //扩展类10     public static class ShowExtension11     {12         public static void MethodTwo(this Show s)  //第一个参数是要扩展的类型,放在this关键字后面,编译器就知道这个方法是Show类型的一部分。13         {14              Console.WriteLine("MethodTwo");        15         }    16     }17 18     19     class Program20     { 21         static void Main()22         {23             Show s = new Show();24             s.MethodOne();25             s.MethodTwo();  //调用扩展类的方法时,第一个参数不用处理。虽然扩展方法是静态,也要使用标准的实例方法语法调用。26             Console.Read();27         }28     }                

  注意:如果扩展方法与类中的某个方法重名,就不会调用扩展方法。类中已有的任何实例方法优先。


 

20、


 

C#容易被忽视的知识点(四)