重温 C# Lambda 表达式

1年前 (2023) 程序员胖胖胖虎阿
125 0 0

虽然从事 .Net 开发有较长一段时间了,但对一些基础知识掌握得不是很好,近期换了工作了,看到代码中的一些 Action 和 Func<> 的用法,于是来补一下基础。

首先说一下几个规则,就能很好理解了:

  1. Lambda 运算符,=> 读做 "goes to"
  2. => 左侧为参数,右侧为表达式或语句块,如 (a,b) => a+b,表示 a,b 为入参,返回值为 a+b
  3. => 右边有 {} 时,为语句块,无 {} 时,为表达式
  4. Action 无返回值,Func<> 有返回值;即 Action<in T1,in T2> 中,T1 和 T2 都为入参,而 Func<in T1,in T2,out T3> 中,T1 和 T2 为入参,T3 为返回值(最后一个为返回值)。

我们举个例子吧

表达式

// return min value
Func<int,int,int> Min = (a,b) => a < b ? a : b;
int x = Min(1,2);
Console.WriteLine(x);
// 1

语句块

Func<int,int,int> Min = 
(a,b) =>
{
    if (a < b)
        return a;
    return b;
};
int x = Min(1,2);
Console.WriteLine(x);
// 1

再举一个 Action 的例子吧

Action<int,int,int> Print = 
{
    Console.WriteLine($"{a}\t{b}\t{c}");
};
Print(1,2,3);
// 1    2    3
版权声明:程序员胖胖胖虎阿 发表于 2023年9月3日 上午11:56。
转载请注明:重温 C# Lambda 表达式 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...