C# 扩展方法

释放双眼,带上耳机,听听看~!

C# 提供了一个很 NB 的机制:扩展方法。它可以让用户根据需要在类的外部为指定的类添加一些操作方法,而且这些方法和普通的实例方法使用起来完全一样(都是通过类实例调用)。

C# 的扩展方法使用起来也非常简单。比如我们要为系统里最常用的 string 类添加一个方法 Jump,则可以使用以下方式:


1
2
3
4
5
6
7
8
11     static class Class1
22     {
33         public static string Jump(this string s)
44         {
55             return s + " jump!";
66         }
77     }
8

So Easy!这样在某个字符串调用该方法的时候,该方法将会返回这个字符串,并且后面跟着 " jump!"。比如我们在Main方法里这样调用:


1
2
3
4
5
6
7
8
1        static void Main(string[] args)
2        {
3            string p = "Jone";
4            Console.WriteLine(p.Jump());
5
6            Console.ReadKey();
7        }
8

控制台将执行如下结果:
C# 扩展方法

所以,C# 里使用扩展方法只需要注意以下几点:

1、扩展方法必需是一个静态方法;

2、扩展方法所在的类必需是一个静态类;

3、扩展方法至少要有一个参数(在扩展方法里需要使用该参数访问实例的成员,在调用该扩展方法时,第一个参数直接被系统忽略);而且参数列表的第一个参数的类型就是该方法要扩展的类型;

4、第一个参数类型前面必需使用 this 关键字标识。

 

 当然,扩展方法还可以添加其它需要的参数,例如:


1
2
3
4
5
6
7
8
1    static class Class1
2    {
3        public static string Jump(this string s,int n)
4        {
5            return s + " 跳了" + n + "次";
6        }
7    }
8

使用的时候添加上实参就 OK 了:


1
2
3
1string p = "Jone";
2Console.WriteLine(p.Jump(3));
3

执行以后,结果如图:

C# 扩展方法

Over!

 

(这东西,不是太常用,记得几年前学过,一直没用过。不过挺有意思的,也比较简单。。刚看到,复习一下。。)

 

给TA打赏
共{{data.count}}人
人已打赏
安全技术

Bootstrap 4 Flex(弹性)布局

2021-12-21 16:36:11

安全技术

从零搭建自己的SpringBoot后台框架(二十三)

2022-1-12 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索