.NET Action 与 Func
Action 与 Func是.NET类库中增加的内置委托,以便更加简洁方便的使用委托
内置委托类型,顾名思义Action和Func本身就是已经定义好的委托类型。两种委托类型的区别在于:Action委托签名不提供返回类型,而Func提供返回类型。
Action委托具有Action、Action<T1,T2>、Action<T1,T2,T3>……Action<T1,……T16>多达16个的重载,其中传入参数均采用泛型中的类型参数T,涵盖了几乎所有可能存在的无返回值的委托类型。
Func则具有Func、Func<T,Tresult>、Func<T1,T2,T3……,Tresult>17种类型重载,T1……T16为出入参数,Tresult为返回类型。
var ts = new TimeSpan(0, 0, 100); Func<string, string, string> demo1 = (a, b) => { return string.Concat(a, b); }; var t1 = demo1("123", "456"); Func<int, int, int> demo2 = (param1, param2) => { return param1 + param2; }; var t2 = demo2(123, 456); //既然是委托类型,也同样可以与匿名函数、或者采用Lambda表达式结合使用: //匿名函数: Func<int, int, int> math1 = delegate (int param1, int param2) { return param1 + param2; }; //Lambda: Func<int, int, int> math2 = (param1, param2) => { return param1 + param2; }; //Action的使用如同上面Func的使用一样,只是缺少了返回类型,直接调用委托函数。 Action<int, int> math = (int param1, int param2) => { Console.WriteLine((param1 + param2).ToString()); }; math(3, 4); //C#的Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。 函数体多于一条语句的可用大括号括起。 var temp = string.Empty; Action<string> actionDelegate = (x) => { temp = x; };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-04-24 同一个项目中使用MVC控制器和WebAPI控制器