c#中的扩展方法学习笔记

2020-01-05 10:05:54丽君

前言

最近在看王清培前辈的.NET框架设计时,当中有提到扩展方法 .

开头的一句话是:扩展方法是让我们在不改变类原有代码的情况下动态地添加方法的方式,这给面向对象设计 模块设计带来了质的提升

很明显,扩展方法在框架设计或者平时码代码中,是能够提升我们整个架构的灵活性的

简介

扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 扩展方法当然不能破坏面向对象封装的概念,所以只能是访问所扩展类的public成员。

扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。

C#扩展方法第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。

扩展方法的目的就是为一个现有类型添加一个方法,现有类型既可以是int,string等数据类型,也可以是自定义的数据类型。

一..net自带扩展方法和自定义扩展方法

在使用linq时就能够使用到很多.net自带的扩展方法,比如where select等等