上篇文章簡單介紹了一下什麼是委託?但是每次都內定義乙個委託,感覺有些麻煩,所以微軟為了為人民服務,提出了內建委託,讓你直接使用就好。
對於內建委託,最常用的主要有三個,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泛型返回 查詢 定義 ...