C# 入门一一Lambda表达式

定义:Lambda表达式可以理解为一个匿名方法,它可以包含表达式和语句,并且用于创建委托或转换为表达式树

使用“=>”运算符,该运算符左边是匿名方法的输入参数,右边是表达式或语句块。

用法一:创建委托

public class Friend
{
	public string Name;
	public Friend( string name )
	{
		Name = name;
	}

	//事件处理函数,该函数需要符合DinnerHandler委托的定义
	public void SendMessage( string message )
	{
		Console.WriteLine( message );
		Console.WriteLine( this.Name + "收到了,准时参加饭局!" );
	}
}

public class Dinner
{
	//自定义委托
	public delegate void DinnerHandler( string msg );
	//使用自定义委托类型定义事件,事件名为DinnerEvent
	public event DinnerHandler DinnerEvent;

	//发出事件
	public void OnDinnerComing( string msg )
	{
		//判断是否绑定了事件处理方法
		if( null != DinnerEvent )
		{
			//触发事件
			DinnerEvent( msg );
		}
	}

	static void Main( string[ ] args )
	{
		Dinner dinner = new Dinner( );

		//实例化朋友对象
		Friend friend1 = new Friend( "张三" );
		Friend friend2 = new Friend( "李四" );

		//使用+=来订阅事件,事件绑定 ---方法一
		//dinner.DinnerEvent += new DinnerHandler( friend1.SendMessage );

		//C# 2.0中使用匿名方法来订阅事件 ---方法二
		/*
		dinner.DinnerEvent += delegate( string msg )
		{
			friend1.SendMessage( msg );
		};
		*/
		//C# 3.0中使用Lambda表达式订阅事件 ---方法三
		dinner.DinnerEvent += ( msg ) => friend1.SendMessage( msg );

		//发出通知,此时只有订阅了事件的对象才能收到通知
		dinner.OnDinnerComing( "朋友们,过来我家吃饭啦!" );
		Console.ReadKey( );
	}
}

用法二:转换为表达式树

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值