C#3.0特性---- 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)
        {
            #region C#3.0 之前的订阅代码写法
            /*
            //新建一个button实例
            Button button1 = new Button();
            button1.Text = "点击我";

            //C# 2.0 使用匿名方法来订阅事件
            button1.Click += delegate(object sender, EventArgs e)
            {
                ReportEvent("Click事件", sender, e);
            };
            button1.KeyPress += delegate(object sender, KeyPressEventArgs e)
            {
                ReportEvent("KeyPress事件,即键盘按下事件", sender, e);
            };

            //在C# 3.0之前,初始化对象时,会使用以下代码
            Form form = new Form();
            form.Name = "在控制台中创建的窗体";
            form.AutoSize = true;
            form.Controls.Add(button1); 
            */
            #endregion

            #region C# 3.0 实现的代码效果如下

            Button button1 = new Button() { Text = "点击我!" };
            //c# 3.0采用Lamada表达式的方法来订阅事件
            button1.Click += (sender, e) => ReportEvent("Click事件", sender, e);
            button1.KeyPress += (sender, e) => ReportEvent("KeyPress事件,即键盘按下事件", sender, e);

            // 在C#3.0 中使用对象初始化器
            Form form = new Form { Name = "在控制台中创建的窗体", AutoSize = true, Controls = { button1 } };


            #endregion
            //运行的窗体
            Application.Run(form);

        }

        private static void ReportEvent(string title, object sender, EventArgs e)
        {
            Console.WriteLine("发生的事件为:{0}", title);
            Console.WriteLine("发生事件的对象为{0}", sender);
            Console.WriteLine("发生事件参数为:{0}", e.GetType());
            Console.WriteLine();
            Console.WriteLine();
        }
    }
}

转载于:https://www.cnblogs.com/xcl461330197/articles/4984987.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值