C# 扩展方法

这个东西很神奇, 没有想明白他是怎么实现的。

1     public static class StrEx
2     {
3         public static void fun(this string s)
4         {
5             Console.WriteLine("fool invoke {0}", s);
6         }
7     }

一个类,随便定义,对边定义一个静态函数。

 void fun(this string s) 这里一定要加this

然后:

1         static void Main(string[] args)
2         {
3             string s = "123123";
4             s.fun();
5             
6         }

string这个类包含了fun的方法。

这个代码等同于

1         static void Main(string[] args)
2         {
3             string s = "123123";
4             StrEx.fun(s);
5             
6         }
原文地址:https://www.cnblogs.com/HighFun/p/2552937.html