欢迎光临散文网 会员登陆 & 注册

C#扩展方法 可用于Unity (主要作用应该是增加便携性)

2020-11-19 23:40 作者:白白_可乐  | 我要投稿


今天超市牛肉半价,只要20一斤,买了两斤.话说牛肉血水真的多,捞浮沫都花了我好几分钟



开始正题

以前给图片写移动效果我都是拿协程手撸,听大佬们说有个叫 DotWeent 的插件做这些很厉害,就下载了免费版来尝试,发现这个插件可以直接使用已有对象来触发函数,像下面这样

Dotween插件官方文档截图

好奇的我,就开始翻源码来看,再接着就发现了这么个东西


C#扩展方法官方文档截图

https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/extension-methods

(微软文档真的是好东西,不仅C#,还可以查C/C++)

(如果你们看文档就看懂了也是好事哈哈)

然后我发现Linq也是用的扩展方法

说了这么多,那么扩展方法到底是什么,怎么用呢?

用我的话来说,所谓扩展方法就是把 形如 Fun(A) 这样的函数调用变成了 A.Fun() 这样的形式.

我们来看一个具体的例子:

代码示例1

当我们要打印显示一个数组(或者列表)的内容时,常规的做法是写一个函数,迭代数组中的内容,然后逐个显示

结果1

但是这样不够帅

所以今天就来讲一个帅的:

先定义一个非泛型静态类,然后开始写我们的扩展方法:

代码样例2

细心的小伙伴们可能发现了,这个函数的参数最开始有一个 this,这是做什么用的呢?

代码样例3

this的功能,就是给所有T[] 类型的变量,添加了一个Print方法,(调用方法如上图,结果见下图),虽然效果和之前相同,但是这个的好处是一旦定义了之后,将其放置在名字空间中,需要的时候引用,就可以直接使用啦。

结果2

要记得,扩展方法必须存在非泛型静态类中。

但我还是不知道这东西有什么用啊。。。主要就是帅。

使用举例



其中包含一个洗牌算法哦。

C#扩展方法 可用于Unity (主要作用应该是增加便携性)的评论 (共 条)

分享到微博请遵守国家法律