19、扩展类
例如想给某个类添加一个新方法,但由于某些原因,不能直接修改类的源代码,可以通过扩展类的方法实现。
具体例子如下:
假设有个类Show
1 public class Show 2 { 3 public void MethodOne() 4 { 5 Console.WriteLine("MethodOne"); 6 } 7 } 8 9 //扩展类 10 public static class ShowExtension 11 { 12 public static void MethodTwo(this Show s) //第一个参数是要扩展的类型,放在this关键字后面,编译器就知道这个方法是Show类型的一部分。 13 { 14 Console.WriteLine("MethodTwo"); 15 } 16 } 17 18 19 class Program 20 { 21 static void Main() 22 { 23 Show s = new Show(); 24 s.MethodOne(); 25 s.MethodTwo(); //调用扩展类的方法时,第一个参数不用处理。虽然扩展方法是静态,也要使用标准的实例方法语法调用。 26 Console.Read(); 27 } 28 }
注意:如果扩展方法与类中的某个方法重名,就不会调用扩展方法。类中已有的任何实例方法优先。
20、
C#容易被忽视的知识点(四)
时间: 2024-10-06 04:20:45