CSharp的lambda表达式的使用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks; // 命名空间
namespace pro01
{
// 类
internal class Program
{
// main 方法
static async Task Main(string[] args)
{
// Action 没有返回值
Console.WriteLine("委托");
Action f1 = delegate () {
Console.WriteLine("我是无参的委托!!");
};
f1();
Action<string ,int> f2 = delegate (string name, int i)
{
Console.WriteLine($"我是有参的委托 参数是 {name}{i}");
};
f2("参数o",100);
// 带返回值的 Func ps: Func 的泛型<> 要比()形参的个数多一个 因为多了一个返回值的类型
// 最后一个泛型就是返回值
// 匿名函数就是函数表达式 就是 箭头函数
Func<int,int,int,string> fn3 = delegate (int i,int j,int z)
{
return (i + j + z).ToString();
};
Console.WriteLine(fn3(1,2,3)); // 6 // 改装成箭头函数(lambada表达式) 新参的类型可以褪去 因为可以推断
Func<string, string> fn4 = (name) =>
{
Console.WriteLine($"这里是匿名函数{name}");
return name;
};
Console.WriteLine(fn4("lambda表达式")); // 没有返回值的 而且 只有一行代码 时候可以不写 {}
Action fn5 = () => Console.WriteLine("省咯大括号");
fn5(); Console.ReadLine();
} }
}
CSharp的lambda表达式的使用的更多相关文章
- .NET委托,事件和Lambda表达式
委托 委托是什么? 委托是一种引用类型(其实就是一个类,继承MulticastDelegate特殊的类.),表示对具有特定参数列表和返回类型的方法的引用. 每个委托提供Invoke方法, BeginI ...
- Lambda表达式学习记录
Lambda表达式可以简化C#编程的某些方面,用法非常灵活.因此也不容易掌握. 下边是我学Lambda表达式的一点记录. 1.Lambda表达式是与委托紧密联系的.只要有委托参数类型的地方,就可以使用 ...
- C# Lambda表达式详细总结
(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分.它包含参数的数量可以为0.1或者多个.只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略.输入参数的数量 ...
- 你知道C#中的Lambda表达式的演化过程吗?
那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂. 委托的使用 例一: 什么是委托? 个人理解:用来传递方法的类型.(用来传递数字的类型有int.float ...
- Linq表达式、Lambda表达式你更喜欢哪个?
什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...
- 背后的故事之 - 快乐的Lambda表达式(一)
快乐的Lambda表达式(二) 自从Lambda随.NET Framework3.5出现在.NET开发者眼前以来,它已经给我们带来了太多的欣喜.它优雅,对开发者更友好,能提高开发效率,天啊!它还有可能 ...
- Kotlin的Lambda表达式以及它们怎样简化Android开发(KAD 07)
作者:Antonio Leiva 时间:Jan 5, 2017 原文链接:https://antonioleiva.com/lambdas-kotlin/ 由于Lambda表达式允许更简单的方式建模式 ...
- java8中lambda表达式的应用,以及一些泛型相关
语法部分就不写了,我们直接抛出一个实际问题,看看java8的这些新特性究竟能给我们带来哪些便利 顺带用到一些泛型编程,一切都是为了简化代码 场景: 一个数据类,用于记录职工信息 public clas ...
- 背后的故事之 - 快乐的Lambda表达式(二)
快乐的Lambda表达式 上一篇 背后的故事之 - 快乐的Lambda表达式(一)我们由浅入深的分析了一下Lambda表达式.知道了它和委托以及普通方法的区别,并且通过测试对比他们之间的性能,然后我们 ...
- CRL快速开发框架系列教程二(基于Lambda表达式查询)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
随机推荐
- 在计算机论文中suppose suggest assume 用法上的区别
ChatGPT3.5的答案: 在计算机论文中,"suppose," "suggest," 和 "assume" 有不同的用法和含义.它们在表 ...
- 构建人工智能的工具 —— VXscan-R:数字孪生环境软件模块
地址: https://www.creaform3d.com.cn/zh/ji-liang-jie-jue-fang/vxscan-rshu-zi-luan-sheng-huan-jing-ruan- ...
- 面向分布式强化学习的经验回放框架——Reverb: A Framework for Experience Replay
论文题目: Reverb: A Framework for Experience Replay 地址: https://arxiv.org/pdf/2102.04736.pdf 框架代码地址: htt ...
- vscode下如何把缩进为2个空格的python项目改为4个空格的缩进
最近在看老项目的代码,是python2.7年代的项目,那个时候很多的python项目都是使用2个空格,不过现在估计大多数人写python项目都是使用4个空格的了,而我看这两个空格的项目代码也是感觉十分 ...
- C# 反射以及实际场景使用
1 什么是反射 首先要复习一下C#的编译过程,可以解释为下图 其中dll/exe中,包括元数据(metadata)和IL(中间语言Intermediate Language) 另外还出现的其他名词:C ...
- WPF Boolean类型转化器收集 反转转化器
参考链接 https://stackoverflow.com/questions/534575/how-do-i-invert-booleantovisibilityconverter Boolean ...
- [CEOI2010 day2] tower 题解
前言 题目链接:洛谷. 题意简述 你要对一个数组排序,满足 \(a_{i + 1} \leq a_i + D\),其中 \(D\) 是给定的常数.求方案数对 \(10^9+9\) 取模的结果. 题目分 ...
- Spring Boot 中使用 JSON Schema 来校验复杂JSON数据
JSON是我们编写API时候用于数据传递的常用格式,那么你是否知道JSON Schema呢? 在数据交换领域,JSON Schema 以其强大的标准化能力,为定义和规范 JSON 数据的结构与规则提供 ...
- Blazor开发框架Known-V2.0.7
V2.0.7 Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行. 官网:http://known.pumantech.com Gitee: https:/ ...
- int128输入输出流
using i128 = __int128; istream &operator>>(istream &is, i128 &x) { string s; is &g ...