• Lambda表达式的非Linq用法


        说到Lambda表达式,几乎所有人的反应就是Linq,不错,Lambda表达式的最大用途确实是在Linq,Lambda表达式本身也是为Linq量身定做的。
        但是Lambda表达式本身只是一个匿名函数的简化版,因此,并不是针对Linq的。换而言之,任何匿名函数可以做的事情,Lambda表达式都可以做。就以Windows Form的程序为例子吧:
        public partial class Form1 : Form
        {

            
    public Form1()
            {
                InitializeComponent();
                
    this.Click += (sender, e) => MessageBox.Show("Hello world.");
            }
        }
        这也是一个合法的Lambda表达式。可以看出来这里的(sender, e) => MessageBox.Show("Hello world.")是代替了这样一个函数
            private static void SomeMethod(object sender, EventArgs e)
            {
                MessageBox.Show(
    "Hello world.");
            }

        当然,csharp 3.0的编译器还为我们做了些事,那就是自动推断出在this.Click +=需要的是一个EventHandler的委托,因此,不需要像csharp 2.0那样需要new EventHandler,编译器帮我们创建了(生成的IL是一样的,只不过可以少写点代码)。
        到这里,会发现Lambda表达式其实根本没做什么事情,只不过是C#语法中加了一种匿名函数的快速而又简单的写法而已。当然,这样的改进是大家所喜欢的。
  • 相关阅读:
    查找之折半查找
    排序之快速排序
    排序之插入排序
    配置nginx支持path_info模式
    安装hadoop2.7.3
    Intellij Idea配置MapReduce编程环境
    jenkins+webhook+docker做持续集成
    nginx反向代理
    docker commit使用
    jenkins容器权限被拒绝
  • 原文地址:https://www.cnblogs.com/vwxyzh/p/782624.html
Copyright © 2020-2023  润新知