如何使用 C# 扩展方法

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用 C# 扩展方法相关的知识,希望对你有一定的参考价值。

译文链接:https://www.infoworld.com/article/3130492/how-to-work-with-extension-methods-in-c.html

C# 在 3.0 版本中提供了对 扩展方法 的支持,扩展方法常用于给一个已存在的类添加新的方法从而扩展该类的功能,最关键的是:你不需要在现存类中派生一个子类,你也不需要破坏性的修改类的现有代码骨架,更谈不上重新编译了,扩展方法能够提供代码可读性的同时又可以扩展类的功能。

.NET 框架中最常见的扩展方法包括 Linq 标准的查询操作,这类扩展方法极大的扩展了System.Collections.IEnumerable 和 System.Collections.Generic.IEnumerable<T> 的查询能力,如下图:

现在你明白了扩展方法,你可以用这项技术去给已存在的 class 或者 interface 添加更多实用方法而不应该从子类中新增额外的方法,MSDN上说:扩展方法允许你给现有的类 添加 方法,而不需要你生成子类,重新编译,或者任何其他形式的修改原有类,扩展方法是一种特殊的静态方法,当你调用它的时候就好像它就是你扩展类的原生方法。

本质上来说,扩展方法也算是一种特殊的静态方法,它允许你给已存在的类添加新的方法即使你没有权限访问这个扩展类的源代码,扩展方法除了签名中的第一个参数是 this 之外就和静态方法是一模一样,你可以给任何一个类添加任意多的扩展方法,更

以上是关于如何使用 C# 扩展方法的主要内容,如果未能解决你的问题,请参考以下文章

我应该在同一台机器上运行的 Firefox 扩展和 C# 代码之间使用哪种 IPC 方法?

C#常用代码片段备忘

如何使用 c# 扩展方法扩展类? [复制]

C# 扩展方法

Sleep() 方法后的代码片段没有被执行

编写高质量代码改善C#程序的157个建议——建议101:使用扩展方法,向现有类型“添加”方法