zoukankan      html  css  js  c++  java
  • 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#语法中加了一种匿名函数的快速而又简单的写法而已。当然,这样的改进是大家所喜欢的。
  • 相关阅读:
    table问题
    生成跟相应qq聊天
    查数组 indexOf()用法
    Ajax请求数据的两种方式
    Ajax面试题
    内部类及静态内部类的实例化
    为什么在开发中大部分的时候都在用session而Application基本上都不去使用?
    Java序列化与反序列化
    Java反射机制
    Java中线程同步的方法
  • 原文地址:https://www.cnblogs.com/vwxyzh/p/782624.html
Copyright © 2011-2022 走看看