浅谈C#中常见的委托<Func,Action,Predicate>

一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的。

关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇。我就不用多废话了。

今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景。

Func,Action,Predicate全面解析

首先来说明Func委托,通过MSDN我们可以了解到,Func委托有如下的5种类型:

(1) *delegate TResult Func(); 

 (2)*delegate TResult Func(T1 arg1); 

 (3) *delegate TResult Func(T1 arg1, T2 arg2); 

 (4)*delegate TResult Func(T1 arg1, T2 arg2, T3 arg3); 

 (5)*delegate TResult FuncT1 arg1, T2 arg2, T3 arg3, T4 arg4);​

其中(1)只能委托无参但是有返回值的函数,TResult就是其返回类型。

而(2)只能委托具有一个传入参数,有返回值的函数,T1为一个传入参数,TResult为返回类型。

(3)只能委托具有二个传入参数,有返回值的函数,T1和T2为两个传入参数,TResult为返回类型,(4)和(5)以此类推

上一篇:Java函数式断言接口Predicate的一个小小实践


下一篇:java8 Predicate