C#中的Predicate<T>,Func<T>,Action<T>

一、基本知识
1.这三个都是.Net内置的泛型委托,方便我们直接使用,而不需要在使用委托时还要做如下定义

public delegate string GetName(string bookId);

 

2.Func<T>是有返回值的泛型委托,格式为Func<T1,T2,T..N,TResult>,T1,T2,T..N为多个参数,TResult为返回值

3.Ation<T>是没有返回值的泛型委托,格式为Action<T1,T2,T..N>,T1,T2,T..N为多个参数

4.Predicate<T>是返回值为Bool的泛型委托,相当于Func<T,bool>,主要用于校验,检查等

 

//方法定义
public static bool CheckOrderNo(Func<string, 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");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值