Action与Func 用法
//vs2017 + framework4.6.2
//zip https://github.com/chxl800/ActionFuncDemo
//源文件git https://github.com/chxl800/ActionFuncDemo.git
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ActionFunc
{
//Action与Func 都是 net内置泛型委托.
//1 Action 没返回值 , 2 Func 有返回值
static class Program
{
static void Main(string[] args)
{
//func 简单Lambda用法
Func<int> f1 = () => {
return 10;
};
Console.WriteLine(f1());
//func 简单Lambda用法2
Func<string, int, string> f2 = (x, y) =>
{
return x + y;
};
Console.WriteLine(f2("你好",666));
//action 简单Lambda用法
Action<int, int> ac1 = (x, y) =>
{
Console.WriteLine("{0}*{1}={2}",x,y, x * y);
};
ac1(10, 99);
//action使用
Actiontmp<int, int>((t1, t2) => { Console.WriteLine("Actiontmp:{0}+{1}={2}", t1, t2, t1 + t2); }, 12, 15);
//初始值
List<int> list = new List<int>() { 10, 22, 2, 5, 89, 75 };
//func用法获取 实体
try {
var entity = list.GetEntity(m => m > 100);
Console.WriteLine(entity);
}
catch {
var d = 222;
}
//func用法获取 列表
var nlist = list.GetSelect(m => m > 6);
foreach (var entity in nlist)
{
Console.WriteLine(entity);
}
Console.ReadKey();
}
//func用法获取 实体
public static TData GetEntity<TData>(this IEnumerable<TData> list, Func<TData, bool> func)
{
foreach (TData entity in list)
{
if (func(entity))
{
return entity;
}
}
throw new Exception("不存在满足条件的第一个元素!");
//return ;
}
//func用法获取 列表
public static List<TData> GetSelect<TData>(this IEnumerable<TData> list, Func<TData, bool> func)
{
List<TData> nlist = new List<TData>();
foreach (TData entity in list)
{
if (func(entity))
{
nlist.Add(entity);
}
}
return nlist;
}
//action使用
public static void Actiontmp<T1,T2>(Action<T1,T2> act, T1 t1, T2 t2) {
act(t1, t2);
}
}
}

Action与Func 用法的更多相关文章
- Func和Action委托简单用法
Func和Action类是特殊的类型,它们允许你在不必指定自定义委托类型的情况下,去使用委托.在整个.NET框架中都可以使用它们.例如,在我们考察并行计算时,你也会看到这两个类的示例. 上面一段文字是 ...
- C#之Action和Func的用法
以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...
- Action 和 Func 的用法以及区别
Action 无返回值 Func 有返回值,且最后一个参数为返回值 Action用法 public static void test(string s) { Console.WriteLine(&qu ...
- C#之Action和Func的用法(转自 https://www.cnblogs.com/LipeiNet/p/4694225.html)
以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...
- [C#] 委托之Action和Func区别
一.说明 一般我们定义委托都是有如下两步: public delegate void MyDelegate(string name);//定义委托 public MyDelegate myDelega ...
- C#action和func的使用
以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...
- [代码]--C#action和func的使用
以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...
- 委托和lambda表达式,Action和Func
1.为什么要用委托 我们为什么要有委托?任何东西存在即合理,不合理的也会被时间淘汰掉,委托既然存在肯定有存在的必要,我们来看一下什么时候可以用到委托. 接下来我们有个需求,就是调用一个方法,取出1-1 ...
- C#之Action和Func
以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发 ...
随机推荐
- 08_Redis持久化——RDB方式
[简述] 持久化:Redis能将数据从内存中以某种形式同步到硬盘中,使得重启后可以根据硬盘中的记录恢复数据,这一过程就是持久化. Redis支持两种方式的持久化,简单来说如下: RDB方式:会根据指定 ...
- ArcGIS软件操作——地图配准
初次写博文,出现措词不当.表述不明确等之类的问题,敬请见谅,但会努力做好.同时,也欢迎各位提出意见,共同交流,共同进步! 直奔主题——运用ArcGIS软件对地图进行配准! 1 数据准备:网络下载的中国 ...
- javascprit form表单提交前验证以及ajax返回json
1.今天要做一个手机验证码验证的功能.需求是前端页面点击发送 短信验证码,后台接收后通过ajax返回到前端,之后前端在提交时候进行验证.思路很简单,不过做的过程还是学到不少的东西. 1.ajax请求后 ...
- 3.获取git仓库
有两种取得 Git 项目仓库的方法. 第一种是在现有项目或目录下导入所有文件到 Git 中: 第二种是从一个服务器克隆一个现有的 Git 仓库. 在现有目录中初始化仓库 如果你打算使用 Git 来对现 ...
- 微信小程序——组件(二)
在上篇文章组件(一)里已经讲解了如何创建一个项目,现在继续...讲解一个页面布局以及各个组件的使用.在学习过程中,发现小程序支持flex布局,这对于学习过react native的人来说太好了,布局方 ...
- ASPNET MVC Error 500.19
今天创建了一个新的ASPNET MVC 项目部署到本地, 生成成功后在浏览器中输入URL却发现报这个错 参照下面的文章我给IIS_IUSRS和IUSR(我比较懒直接everyone)赋予虚拟目录读写权 ...
- 【Leetcode】【Medium】Remove Duplicates from Sorted Array II
Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For exampl ...
- ssh免密码登陆失败的原因
今天因为需要在两台服务器上进行ssh免登陆,所以安装网上的教程,ssh-keygen -t rsa,然后把相互的密钥加入到对方的authorized_keys. 问题是我们虽然这样做了,却一直要密码, ...
- JsonPath教程
1. 介绍 类似于XPath在xml文档中的定位,JsonPath表达式通常是用来路径检索或设置Json的.其表达式可以接受“dot–notation”和“bracket–notation”格式,例如 ...
- 第二次作业——MathExamLv2
MathExamLv2--林志松 211406285 李明康 211606314 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际 ...