asp.net 内置委托 Action 和 Func 和 Predicate

2020-04-11 23:22:01后端技术围观数:7109 点赞数:707

委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。事件是一种特殊的委托。

Action 和 Func 和 Predicate是asp.net内置委托

Action是无返回值的泛型委托

Action 表示无参,无返回值的委托

Action<int,string> 表示有传入参数int,string无返回值的委托

Action<int,string,bool> 表示有传入参数int,string,bool无返回值的委托

Action<int,int,int,int> 表示有传入4个int型参数,无返回值的委托

Action至少0个参数,至多16个参数,无返回值

//1.无参数,无返回值的委托
Action action = () => { Console.WriteLine("无参数,没有返回值!"); };
action();
//2.带参数,无返回值的委托
Action<int, int> action = (x, y) => { Console.WriteLine(x + y); };
action(100, 100);

Func是有返回值的泛型委托

Func<int> 表示无参,返回值为int的委托

Func<object,string,int> 表示传入参数为object, string 返回值为int的委托

Func<object,string,int> 表示传入参数为object, string 返回值为int的委托

Func<T1,T2,T3,int> 表示传入参数为T1,T2,T3(泛型)返回值为int的委托

Func至少0个参数,至多16个参数,根据返回值泛型返回。必须有返回值,不可void

//1.无参数,有返回值的委托
Func<int> func = () => { return 100; };
int r = func();
Console.WriteLine(r);
//2.带参数,有返回值的委托
Func<int, int, int, int, int> func = (x, y, z, w) => { return x + y + z + w; };
var sum = func(1, 2, 3, 4);
Console.WriteLine(sum);

predicate 是返回bool型的泛型委托

predicate<int> 表示传入参数为int 返回bool的委托

Predicate有且只有一个参数,返回值固定为bool

例:public delegate bool Predicate<T> (T obj)

 

转载请说明出处:博客微站原文链接:

标签:Asp.NetC#

相关阅读:

vs生成成功但发布时报错 未能将文件...复制到... 未能找到文件...

FluentData 报错 Error:Could not map ...字段名