C 基礎 Func和Action的介紹及其用法

2021-06-10 17:47:23 字數 1160 閱讀 9006

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是沒有返回型別和引數輸入的。

C 基礎 Func和Action學習

委託 action func 總結委託的那些事 關於委託的基本定義,在很久之前的這篇文章中,有個簡單的介紹。稍微回顧一下。委託是c 中型別安全的,可以訂閱乙個或多個具有相同簽名方法的函式指標 宣告委託的方式 delegate 返回值型別 委託型別名 引數 例如 1 delegate void say...

C 基礎 Func和Action學習

委託 委託的那些事 關於委託的基本定義,在很久之前的這篇文章中,有個簡單的介紹。稍微回顧一下。委託是c 中型別安全的,可以訂閱乙個或多個具有相同簽名方法的函式指標 宣告委託的方式 delegate 返回值型別 委託型別名 引數 例如 1 delegate void say string strcon...

C 基礎 Func和Action的介紹及其用法

func是一種委託,這是在3.5裡面新增的,2.0裡面我們使用委託是用delegate,func位於system.core命名空間下,使用委託可以提公升效率,例如在反射中使用就可以彌補反射所損失的效能。action和func的功能是一樣的,只是action沒有返型別,func 有引數,有返回型別 a...