今天继续分享C#4.0语法糖的扩展方法,这个方法也是我本人比较喜欢的方法。大家先想想比如我们以前写的原始类型不能满足现在的需求,而需要在该类型中添加新的方法来实现时大家会怎么做。我先说一下我没有学习到这个知识点之前做的方法:

最笨的办法就是修改原来的类型,然后添加一个方法来达到需求的变更,如下代码所示:

  

C#4.0语法糖之第四篇: 扩展方法[多图]图片1C#4.0语法糖之第四篇: 扩展方法[多图]图片2
1publicclassKuozFF23{45publicvoidNormalMethod()67{89Console.WriteLine("我是原始方法");1011}1213publicvoidExtensionMethod()1415{1617Console.WriteLine("我是扩展方法");1819}2021}
View Code

调用方法:

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

输出效果如下:

但是比如说别人给你的是一个dll文件,你没有办法修改,但是你想在该类中添加你的方法怎么办?

自己写一个类,然后该类继承自原始类,代码如下:

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