c#-lambda

using System;
// c#-lambda
namespace ConsoleApp12
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            int a = 5;
            Func<int, int, int> lambd = (in1, in2) =>
            {
                return in1 + in2 + a;
            };
            Console.WriteLine(lambd(6,7));
        }
    }
}

在这里插入图片描述

C#中的Lambda表达式是一种简洁的表示匿名方法的方式。它允许你将代码块作为参数传递给方法,或者将代码块赋给委托类型的变量。Lambda表达式的基本语法是 `(参数) => 表达式或语句块`。 1. **基本语法**: - **无参数的Lambda表达式**:`() => { /* 代码 */ }` - **单参数的Lambda表达式**:`x => { /* 代码 */ }` - **多参数的Lambda表达式**:`(x, y) => { /* 代码 */ }` 2. **Lambda表达式和匿名方法的区别**: - Lambda表达式可以使用表达式树,而匿名方法不可以。 - Lambda表达式在某些情况下代码更简洁。 - Lambda表达式可以引用外部变量,这种变量被称为闭包。 3. **使用场景**: - **委托**:直接在委托声明中使用Lambda表达式。 - **表达式树**:作为数据结构,在编译时分析代码逻辑。 - **LINQ查询**:在LINQ查询中广泛使用Lambda表达式来指定查询表达式。 4. **类型推断**: - C#编译器会根据上下文推断Lambda表达式的类型。 - Lambda表达式可以显式地声明类型,例如 `(int x) => x + 1`。 5. **泛型Lambda表达式**: - Lambda表达式可以是泛型的,例如 `(T x) => x.ToString()`。 6. **语句块Lambda表达式**: - 如果Lambda表达式包含多条语句,则必须使用花括号 `{}` 包围代码块,并且可以包含返回语句。 7. **Lambda表达式与async和await**: - Lambda表达式可以与异步编程结合使用,使用`async`和`await`关键字可以定义异步Lambda表达式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值