zoukankan      html  css  js  c++  java
  • 不一样的风格,C#的lambda表达式

    下面贴出代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    namespace Lambda表达式
    {
        class Program
        {
            static void Main(string[] args)
            {
                //lambda表达式的演变过程
                //下面是C#1.0中创建委托实例的代码
                Func<string, int> delegatetest1 = new Func<string, int>(callbackmethod);
                //
                //C#2.0中用匿名方法来创建委托实例,此事就不需要去额外定义回调方法callbackmethod了
                Func<string, int> deledatetest2 = delegate(string text)
                {
                    return text.Length;
                };
                //
                //C# 3.0中使用lamabda表达式来创建委托实例
                Func<string, int> delegatetest3 = (string text) => text.Length;
                //
                //可以省略类型参数string,从而代码再次简化
                Func<string, int> delegatetest4 = (text) => text.Length;
                //括号省略
                Func<string, int> delegatetest = text => text.Length;
                
                //调用委托
                Console.WriteLine("use lambda to retun text.length=" + delegatetest("helloworld"));
                Console.WriteLine("------------------------------------------------------------");
                //以上是lamada演变过程
                //下面是lamada在订阅事件的使用
    
                //定义一个按钮
                Button btn = new Button() { Text = "点击我啊" };
                btn.Click+=(sender,e)=>ReportEvent("点击按钮事件",sender,e);
                //定义窗体显示
                Form form = new Form() { Name = "在控制台创建的窗体", AutoSize = true, Controls = { btn } };
                //运行窗体
                Application.Run(form);
                Console.Read();
            }
            private static int callbackmethod(string text)
            {
                return text.Length;
            }
            private static void ReportEvent(string title, object sender, EventArgs e)
            {
                Console.WriteLine("发生的事件为:{0}", title);
                Console.WriteLine("发生事件的对象是:{0}",sender);
                Console.WriteLine("发生事件的参数是:{0}",e.GetType());
            }
        }
    }
  • 相关阅读:
    CentOS linux系统将UTC时间修改为CST时间
    .py与.pyc文件区别
    Linux安装python3.6
    ddt源码修改:HtmlTestRunner报告依据接口名显示用例名字
    FinalShell Mac OS版,Linux版安装及教程
    jmeter 参数化学习之CSV Data Set Config随机读取一行参数
    linux把文件压缩成.tar.gz的命令
    Mac下Sublime Text3配置Python开发环境
    Web Api通过文件流下载文件到本地实例
    WebAPI返回时间数据不带T
  • 原文地址:https://www.cnblogs.com/xiefengdaxia123/p/5982875.html
Copyright © 2011-2022 走看看