首页 > 其他分享 >lambda表达式

lambda表达式

时间:2025-01-21 18:21:20浏览次数:1  
标签:Console value 参数 WriteLine 表达式 lambda

lambda表达式

可以将lambda表达式理解为匿名函数的简写


//基本语法:
//(参数列表) =>
//{
// 函数体
//};
//无参无返回值
Action a = () => 
{
    Console.WriteLine("无参无返回值的lambda表达式");
};
a();
//有参数的
Action<int> b = (int value) =>
{
    Console.WriteLine("有参数的的lambda表达式");
};
b(1);
//有参数时,参数类型可以省略,参数类型和容器一致
Action <int> c =(value) =>
{
    Console.WriteLine("省略参数类型的lambda表达式");
};
c(1);
//有返回值的
Func <string,int> d = (value) =>
{
    Console.WriteLine("有参数有返回值的lambda表达式");
    return 1;
};
Console.WriteLine(d("123"));

闭包
内层函数可以引用包含在它外层的函数的变量,即使外层函数的执行已经终止

该变量提供的值并非变量创建时的值,而是在父函数范围内的最终值

class Test
{
    public event Action action;
    //当构造函数被调用时就形成了闭包
    //value的生命周期被改变了
    public Test()
    {
        int value = 10;
        action = () =>
        {
            Console.WriteLine(value);
        };
        //该变量提供的值并非变量创建时的值,而是在父函数范围内的最终值,所以全部都会打印出来10
        for (int i = 0;i<10;i++)
        {
            //如果希望打印出来0~9
            //int index = i;
            action += () =>
            {
                Console.WriteLine(i);
            };
        }
    }
    public void DoEvent()
    {
        action();
    }
}
Test t = new Test();
t.DoEvent();

标签:Console,value,参数,WriteLine,表达式,lambda
From: https://www.cnblogs.com/cannedmint/p/18683911

相关文章

  • 26、正则表达式
    目录一.匹配字符.:匹配除换行符外的任意单个字符。二.位置锚点^:匹配输入字符串的开始位置。$:匹配输入字符串的结束位置。\b:匹配单词边界。\B:匹配非单词边界。三.重复限定符*:匹配前面的字符或子表达式零次或多次(贪婪模式)。+:匹配前面的字符或子表达式一次或多次(贪婪......
  • C#表达式和运算符
    本文我们将学习C#的两个重要知识点:表达式和运算符。本章内容会理论性稍微强些,我们会尽量多举例进行说明。建议大家边阅读边思考,如果还能边实践就更好了。1.表达式说到表达式,大家可能感觉有些陌生,我们先来举个例子。在前面章节的示例代码中,大家一定见过类似这样的代码:i++,它其......
  • Python 列表推导和生成器表达式的区别点
    列表推导(ListComprehensions)和生成器表达式(GeneratorExpressions)在Python中有着相似的语法,但它们的行为和用途有所不同。以下是两者之间的主要区别:1.内存使用列表推导:创建一个完整的列表,所有元素都会被立即计算并存储在内存中。squares_list=[x**2forxinrange(1......
  • JavaScript 操作符与表达式
    Hi,我是布兰妮甜,编写流畅、愉悦用户体验的程序员。JavaScript是一种功能强大且灵活的编程语言,广泛应用于前端和后端开发。它提供了一系列丰富的操作符和表达式来处理数据、执行逻辑判断以及控制程序流程。理解这些概念对于编写高效、可读性强的代码至关重要。下面将详细......
  • 一定要用的lambda
    为了熟练使用和记忆,按照这个规则记忆就可以。函数式接口四大类型:1.消费型给一个入参,没有返回值@FunctionalInterfacepublicinterfaceConsumer<T>{voidaccept(Tt);defaultConsumer<T>andThen(Consumer<?superT>after){Objects.requireNonNull......
  • JS宏进阶:正则表达式的使用
    正则表达式,对于任何一门编程语言来说,都是一种非常强大的工具,主要用于搜索、编辑或操作文本和数据。因此,在JS中,也存在相应的对象newRegExp(),在本章中,将详细介绍正则表达式在JS宏中的运用。一、正则表达式的创建在基础篇章中,曾提及正则表达式对象,在JS中有两种创建方法,示例如......
  • C++模板--packaged_task 如何打包 lambda 和函数指针?
    从它的构造函数上看,似乎不能接受lambda和函数指针作为构造函数的参数但可以通过如下自定义推导规则来实现.这实际上是DeductionGuides技术//1template<class_Rp,class..._Args>packaged_task(_Rp(*)(_Args...))->packaged_task<_Rp(_Args...)>;//2template......
  • 表达式转换
    中->后初始化一个空栈,用于存储运算符。逐个扫描中缀表达式的字符:如果是操作数,直接加入后缀表达式。如果是左括号(,将其压入栈。如果是右括号),不断弹出栈顶元素并加入后缀表达式。如果是操作符:如果栈为空或者栈顶为左括号,直接压入栈。否则,比较栈顶操作符和当前操作符的......
  • 爬虫入门之Re函数和正则化表达式两篇掌握(上)
    在爬虫开发中,精准定位数据是非常重要的,原因如下:提高效率:减少网络流量:通过精准定位所需的数据,可以避免下载不必要的内容,从而减少网络带宽的消耗。加快处理速度:直接获取目标数据可以减少解析和过滤的时间,使爬虫程序运行得更快。确保数据准确性:获取有效信息:精准定位能够确保......
  • C# 正则表达式
    C#中正则表达式的详细讲解,包括基本概念、常用方法和一些示例。基本概念正则表达式(RegularExpression,简称Regex)是一种用于匹配字符串的模式。正则表达式可以用来检查一个字符串是否符合某种模式、提取匹配的子字符串、替换匹配的子字符串等。命名空间在C#中,正则表达式相关......