gpt4 book ai didi

c# - 请有人解释一下...(C# Lambda 表达式)

转载 作者:太空狗 更新时间:2023-10-30 00:46:03 25 4
gpt4 key购买 nike

有什么区别

Func<string,int> returnLength;
returnLength = (string text) => { return text.Length; };
Console.WriteLine (returnLength("Hello"));

简单地

  string str = "Hello";
Console.WriteLine (str.Length);

使用其中之一有什么优势吗?

最佳答案

这个问题实际上不是关于何时使用 lambda 表达式,而是一般何时使用委托(delegate)。答案是您使用委托(delegate)作为封装行为并传递它的一种方式。

有用的示例:

  • 事件处理程序(最常见的示例是用户界面事件,例如单击按钮)
  • 异步操作回调(“当您完成网页下载后运行此代码”)
  • LINQ 操作(“使用此谓词执行过滤”)
  • 启动新线程(“创建线程后,在其中运行这段代码”)

所有这些都可以用接口(interface)代替;委托(delegate)在很多方面类似于单一方法接口(interface)。但是,委托(delegate)通常是一种更简洁的解决方案,部分原因是与实现接口(interface)、使用单独的方法或使用匿名方法或 lambda 表达式表达内联逻辑相比,您可以更灵活地创建委托(delegate)。

关于c# - 请有人解释一下...(C# Lambda 表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4231401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com