调用代码如下:

C#4.0语法糖之第四篇: 扩展方法[多图]图片1C#4.0语法糖之第四篇: 扩展方法[多图]图片2
1MYKZFF method=newMYKZFF();23method.NormalMethod();45method.ExtensionMethod();67Console.ReadLine();
View Code

效果如下:


  以上结果可以看出效果是一样的,但是有的人他不想写继承类,也不想修改源代码怎么办?这时候就扩展方法诞生了!我先看看官方解释吧:

扩展方法:使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。 对于用 C# 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异

这是微软MSN上的解释,我们直接看代码,扩展方法是长什么样吧:

C#4.0语法糖之第四篇: 扩展方法[多图]图片1C#4.0语法糖之第四篇: 扩展方法[多图]图片2
1publicclassKuozFF23{45publicvoidNormalMethod()67{89Console.WriteLine("我是原始方法");1011}12131415}16171819publicstaticclassExtensionClass2021{2223publicstaticvoidExtensionMethod(thisKuozFF k)2425{2627Console.WriteLine("我是扩展方法");2829}3031}
View Code

调用代码如下:

C#4.0语法糖之第四篇: 扩展方法[多图]图片1C#4.0语法糖之第四篇: 扩展方法[多图]图片2
1KuozFF method=newKuozFF();23method.NormalMethod();45method.ExtensionMethod();67Console.ReadLine();
View Code