欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > C# lambda表达式

C# lambda表达式

2025/4/19 11:44:45 来源:https://blog.csdn.net/sc_1313/article/details/145281088  浏览:    关键词:C# lambda表达式

目录

    • 1、什么是lambda表达式?
    • 2、理解lambda表达式的例子
      • 2.1 普通函数
      • 2.2 匿名函数
      • 2.3 lambda表达式
    • 3、为什么要使用lambda表达式?

1、什么是lambda表达式?

lambda表达式是匿名函数的升级版,匿名函数参见C# 匿名函数。lambda表达式比匿名函数形式更简单,功能更强大。

lambda表达式的形式:

  • 表达式lambda(expression lambda)
(input-parameters) => expression
namespace ConsoleApp1
{class Program{static void Main(string[] args){Func<int, int> func1 = x => x * x;int result = func1.Invoke(2);Console.WriteLine(result);Console.ReadKey();}}
}
  • 语句lambda(statement lambda)
(input-parameters) => { <sequence-of-statements> }
namespace ConsoleApp1
{class Program{static void Main(string[] args){Action<string> action = x => { Console.WriteLine("{0} is writing a blog.", x); };action.Invoke("Mike");Console.ReadKey();}}
}

2、理解lambda表达式的例子

2.1 普通函数

namespace ConsoleApp1
{class Program{static void Main(string[] args){Action<string> action = WriteBlog;action.Invoke("Mike");Console.ReadKey();}static void WriteBlog(string name){Console.WriteLine("{0} is writing a blog.",name);}}
}

2.2 匿名函数

namespace ConsoleApp1
{class Program{static void Main(string[] args){Action<string> action = delegate(string name) { Console.WriteLine("{0} is writing a blog.", name); };action.Invoke("Mike");Console.ReadKey();}}
}

2.3 lambda表达式

namespace ConsoleApp1
{class Program{static void Main(string[] args){Action<string> action = x=> Console.WriteLine("{0} is writing a blog.", x);action.Invoke("Mike");Console.ReadKey();}}
}

lambda表达式相对于匿名函数,进一步进行了省略,lambda表达式不用写delegate,lambda表达式中,也不需要显式地写出x的类型,编译器会自动进行类型推测。

在这里插入图片描述

lambda表达式的=>左边是输入参数,输入参数使用圆括号括起来,如果输入参数只有一个,那么圆括号可以省略;=>右边是函数体。这个例子中,lambda表达式有一个输入参数x,x的数据类型编译器根据与lambda表达式相匹配的委托的签名进行推测,因此,x的数据类型为string。函数体打印字符串到终端。
lambda表达式广泛应用在LINQ中,我会在之后的博客中详细介绍。

3、为什么要使用lambda表达式?

简单、方便、好用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词