委托的学习

委托的使用主要是为了解决不知道什么时候可能触发的这种事件而用的。
我们举个例子,假如你开了一家餐厅,除了日常的餐饮业务之外,还会有电话订餐等业务。电话订餐的业务就可以委托给儿子,这个过程就叫做委托。
儿子接完电话可以告诉你,也可以不告诉你,这就看这个委托的类型。

一、普通委托(比如我们要执行一两个数的加法运算)

//第一步,定义委托																	(接电话这个事件)
	public delegate int AddDel(int a , int b);
//第二步,写真正的执行加法的方法													(定义一个会接电话的儿子)
	public int FuncAdd(int a ,int b){
		return a + b;
	}	
//第三步,将方法绑定到委托,通常一个委托可以绑定多个方法,这就是我们所说的多播委托	(告诉儿子接电话这个事情)
	AddDel myadddel = new AddDel(FancAdd);
//第四步,开始																		(儿子开始等电话)
	myadddel(3,4);
	//或者myadddel.Invoke(3,4);

二、泛型委托
系统中其实已经内置了两个定义好的委托,我们可以省略掉普通委托中的第一步
这两个系统委托的就是Func和Action ,二者区别是Func参数列表T,最后一个是返回值,而Action是没有任何返回值的(参数列表T,最多16个输入函数,可以是任何类型)

1.Func委托

#region
	Func<int,int,int> 我的匿名委托 = 
	delegate(int a , int b){
		return a + b;
	};		
#endregion

2.Action委托
如果我们执行一个不需要返回结果的委托,则使用Action ,比如我们让说一句Hello World

#region
	Action<string> 我的匿名委托2 = 
	delegate(string s){
		Console>WriteLine("Hello World");
	};

我的匿名委托2. Invoke("Hello World");
#endregion

3.使用Lambda表达式简化委托写法

Func<int, int , int>  我的Lambda表达式委托=
	(int a, int b) => a+b;
Action<string>  我的Lambda表达式委托2 =
	(s) =>Consloe.WriteLine(s);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值