Func泛型委託

2021-06-22 02:24:35 字數 1627 閱讀 4612

描述:

封裝乙個具有乙個引數並返回tresult引數指定的型別值的方法.

語法:

public delegate tresult func

(t arg);

引數型別:

t:此委託封裝的方法的引數型別.

tresult:此委託封裝的方法的返回值型別.

引數:

arg:委託封裝的方法的引數

返回值:此委託封裝的方法的返回值

備註:

可以使用此委託構造乙個能以引數形式傳遞的方法,而不用顯式宣告自定義的委託.該方法必須與此委託的方法簽名想對應.

也就是說,封裝的方法必須具有乙個通過值傳遞給它的引數,並且具有返回值.

注意:

若要引用乙個具有乙個引數並返回void的方法,則需要使用泛型action委託.

上面接受的只是有乙個引數,並有返回值的情況,其實func委託共有以下形式:

public delegate tresult func();

public delegate tresult func(t arg);

public delegate tresult func(t1 arg1,t2 arg2);

public delegate tresult func(t1 arg1,t2 arg2,t3 arg3);

public delegate tresult func(t1 arg1,t2 arg2,t3 arg3,t4 arg4);

即:當我們使用有乙個、兩個、三個、四個引數並有乙個返回值時,可以不用自己定義委託,可以使用已定義好的委託。

例子:

protected void page_load(object sender, eventargs e)

); func

fi = new

func

(morethan5);

ienumerator

ie =list.where(fi).getenumerator();

//效果與list.where(fi).getenumerator()一致

//ienumeratorie = list.where(x => x > 5).getenumerator();

//效果與list.where(fi).getenumerator()一致

//ienumeratorie = list.where(delegate(int i)).getenumerator();

while(ie.movenext())

}public static bool morethan5(int i)

頁面輸出:

7610

8

C 內建泛型委託 Func委託

func委託代表有返回型別的委託 檢視func的定義 using system.runtime.compilerservices namespace system 你會發現,func其實就是有多個輸出引數並且有返回值的delegate。func至少0個輸入引數,至多16個輸入引數,根據返回值泛型返回...

委託, 泛型委託,Func和Action

使用委託來做一些事情,大致思路是 1 定義宣告乙個委託,規定輸入引數和輸出型別。2 寫幾個符合委託定義的方法。3 把方法列表賦值給委託 4 執行委託 internal delegate int mydelegate class programconsole.readkey static ienume...

Action和Func泛型委託

1.泛型action委託表示引用乙個void返回型別的方法。因為這個委託類存在不同的變體,所以可 以傳遞至多16種不同的引數型別。沒有泛型引數的action類可呼叫沒有引數的方法。action 呼叫帶乙個引數的方法,action呼叫帶兩個引數的方法,action呼叫帶8個引數的方法。2,func委託...