C#擴(kuò)展方法 可用于Unity (主要作用應(yīng)該是增加便攜性)

今天超市牛肉半價,只要20一斤,買了兩斤.話說牛肉血水真的多,撈浮沫都花了我好幾分鐘

開始正題
以前給圖片寫移動效果我都是拿協(xié)程手?jǐn)],聽大佬們說有個叫 DotWeent 的插件做這些很厲害,就下載了免費(fèi)版來嘗試,發(fā)現(xiàn)這個插件可以直接使用已有對象來觸發(fā)函數(shù),像下面這樣

好奇的我,就開始翻源碼來看,再接著就發(fā)現(xiàn)了這么個東西

https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
(微軟文檔真的是好東西,不僅C#,還可以查C/C++)
(如果你們看文檔就看懂了也是好事哈哈)
然后我發(fā)現(xiàn)Linq也是用的擴(kuò)展方法
說了這么多,那么擴(kuò)展方法到底是什么,怎么用呢?
用我的話來說,所謂擴(kuò)展方法就是把 形如 Fun(A) 這樣的函數(shù)調(diào)用變成了 A.Fun() 這樣的形式.
我們來看一個具體的例子:

當(dāng)我們要打印顯示一個數(shù)組(或者列表)的內(nèi)容時,常規(guī)的做法是寫一個函數(shù),迭代數(shù)組中的內(nèi)容,然后逐個顯示

但是這樣不夠帥
所以今天就來講一個帥的:
先定義一個非泛型靜態(tài)類,然后開始寫我們的擴(kuò)展方法:

細(xì)心的小伙伴們可能發(fā)現(xiàn)了,這個函數(shù)的參數(shù)最開始有一個 this,這是做什么用的呢?

this的功能,就是給所有T[] 類型的變量,添加了一個Print方法,(調(diào)用方法如上圖,結(jié)果見下圖),雖然效果和之前相同,但是這個的好處是一旦定義了之后,將其放置在名字空間中,需要的時候引用,就可以直接使用啦。

要記得,擴(kuò)展方法必須存在非泛型靜態(tài)類中。

但我還是不知道這東西有什么用啊。。。主要就是帥。
使用舉例



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