func是一種委託,這是在3.5裡面新增的,2.0裡面我們使用委託是用delegate,func位於system.core命名空間下,使用委託可以提公升效率,例如在反射中使用就可以彌補反射所損失的效能。
action和func的功能是一樣的,只是action沒有返型別,
func:有引數,有返回型別
action,則既沒有返回也沒有引數,
func的表現形式分為以下幾種:
1。func
2。func
3。func
4。func
5。func
分別說一下各個引數的意義,tresult表示 委託所返回值 所代表的型別, t,t1,t2,t3,t4表示委託所呼叫的方法的引數型別,
以下是使用示例:
funcmyfunc = null;//全部變數
myfunc = x => checkisint32(x); //給委託封裝方法的地方 使用了lambda表示式
private bool checkisint32(int pars)//被封裝的方法
bool ok = myfunc(5);//呼叫委託
msdn:
但是如果我們需要所封裝的方法不返回值,增麼辦呢?就使用action!
可以使用action>
委託以引數形式傳遞方法,而不用顯式宣告自定義的委託。封裝的方法必須與此委託定義的方法簽名相對應。也就是說,封裝的方法必須具有四個均通過值傳遞給它的引數,並且不能返回值。(在 c# 中,該方法必須返回void
。在 visual basic 中,必須通過sub
…end sub
結構來定義它。)通常,這種方法用於執行某個操作。
使用方法和func類似!
msdn:
action:既沒有返回,也沒有引數,使用方式如下:
action action = null;//定義action
action = checkisvoid;//封裝方法,只需要方法的名字
action();//呼叫
總結:使用func和action,action而不使用delegate其實都是為了簡化**,使用更少的**達到相同的效果,不需要我們顯示的宣告乙個委託,func的最後乙個引數始終是返回型別,而action是沒有返回型別的,而action是沒有返回型別和引數輸入的。
Func Action 的區別於說明
一 func func是乙個.net內建的委託。func,func是乙個.net內建的泛型委託。func func func func func 它有5種形式,只是引數個數不同 第乙個是無引數,但是有返回值 下面是乙個簡單的普通委託來傳方法的示例。private delegate string sa...
Bit map介紹及其應用
注 本文參考自 修正了其中的一些問題 感謝原作者 所謂的bit map就是用乙個bit位來標記某個元素對應的value,而key即是該元素。由於採用了bit為單位來儲存資料,因此在儲存空間方面,可以大大節省。如果說了這麼多還沒明白什麼是bit map,那麼我們來看乙個具體的例子,假設我們要對0 7內...
Gulp及其外掛程式介紹
gulp是乙個前端的自動化構建工具,可以完成對前端資源的壓縮 合併 格式化以及版本管理,也可以監聽前端資源的變化去做一些自動化的構建工作 gulp也是乙個基於nodejs的自動任務執行器,所以使用gulp的時候要有一套node的環境,這裡對node的安裝就不再贅述了。結合社群裡好多優秀的gulp外掛...