.Net内置泛型托付Func,Action,Predicate的使用
一、根本常识
1.那三个都是.Net内置的泛型拜托,便利我们间接利用,而不需要在利用拜托时还要做如下定义
public delegate string GetName(string bookId);
2.FuncT是有返回值的泛型拜托,格局为FuncT1,T2,T..N,TResult,T1,T2,T..N为多个参数,TResult为返回值
3.AtionT是没有返回值的泛型拜托,格局为ActionT1,T2,T..N,T1,T2,T..N为多个参数
4.PredicateT是返回值为Bool的泛型拜托,相当于FuncT,bool,次要用于校验,查抄等
二、利用理解
泛型拜托的利用,和抽像类的笼统办法有异曲同工之妙,即将营业改变的实现部门抽离到外部,内部法式主体框架连结稳定,做到办法注进,属性注进
共同匿名办法的利用,可进一步使外部的实现部门也变得十分简洁,在Linq的扩展办法有大量利用
例如:有一个揣度单号合法的办法(除了揣度,还要写LOG,计数等),因为每种单据差别,揣度逻辑也是纷歧样的,演示办法注进
//办法定义
public static bool CheckOrderNo(Funcstring, bool fun, string orderNo)
bool re = fun(orderNo);
//TODO:Log
//TODO:Count
return re;
//利用匿名办法//揣度能否为AA单(长度为10,首字母为"AA"var result= CheckOrderNo(x = x.Length == 10 x.Substring(0, 2).ToUpper.Equals("AA"), "AB126552DFD15");//揣度能否为AD单(长度为16,6~10字母为"ADGH")var result= CheckOrderNo(x = x.Length == 16 x.Substring(5, 4).ToUpper.Equals("ADGH"), "AB126ADGH552DFD");//利用通俗做法public bool CheckAAOrderNo(string orderNo){return orderNo.Length == 10 orderNo.Substring(0, 2).ToUpper.Equals("AA")}var result= CheckOrderNo(CheckAAOrderNo, "AB126552DFD15");
出处:
版权声明:本文来源于网友搜集或网友供给,仅供进修交换之用,假设有侵权,请转告版主或者留言,本公家号立即删除。
撑持小薇
腾讯云福利 :
【腾讯云】多款云产物1折起,买云办事器送免费机器,最长免费续 3个月
存眷公家号: DotNet开发跳槽
觉得不错,请点个在看 呀