C 內建 委託(1)

2021-06-29 04:06:06 字數 1012 閱讀 2876

上篇文章簡單介紹了一下什麼是委託?但是每次都內定義乙個委託,感覺有些麻煩,所以微軟為了為人民服務,提出了內建委託,讓你直接使用就好。

對於內建委託,最常用的主要有三個,action<>,func<>,predicate<>

對於內建,怎麼理解?其實就是少去了定義的過程。

對於action<>的出現是在.

netframework2.0的時候出現的,當時還只能夠傳入4個值,漸漸的在.

netframework3.0的支援下,出現了func<>,滿足了對於返回值的要求。現在不管是action<>還是func<>最多可以封裝16個引數

舉例說明:

actiondemo:

利用三個引數,來對一句話進行設定:

//action<>委託的乙個目標

static void displaymessage(string msg, consolecolor txtcolor, int printcount)

//重置顏色

console.foregroundcolor = previous;

}

看控制台的呼叫:

static void main(string args)

看控制台呼叫:

//使用func<>委託來指向add

funcfunctarget = new func(add);

int result = functarget.invoke(40, 40);

console.writeline("40+40=", result);

定義兩個引數int型別,返回乙個int型別的返回值。

對於內建委託的使用,簡化了自定義委託帶給我們的繁瑣,不過

只是講述了一下action<>和func<>的使用,未完待續……

C 內建委託

三種內建委託 action 無返回值.func 尖括號最後乙個型別為返回值型別.必須要有返回值.predicate 返回型別為bool,必須有乙個引數,等價於func 注意,有返回值的委託中,如果有多個方法註冊在內,返回值是最後註冊的方法返回值,前面的同樣會執行,只不過返回值拿不到 using sy...

C 內建泛型委託 Func委託

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

C 常用系統內建委託

net 自帶的委託有時真的非常方便.action無返回值 迭代操作 定義 public delegate void action t obj 多達16個泛型引數過載 使用 list.foreach c console.writeline c.id c.username func泛型返回 查詢 定義 ...