C#基础之从委托说起

到设计模式,均为委托的使用


一、从委托说起

委托
委托可类比 C 中的函数指针


委托中的多播 Combine(+=) 和 Remove(-=)
其中 Combine(Remove),将委托的调用列表连接(删除, 将生成一个新(委托)实例,不改变原始对象,类似于string.contact。委托实例与事件不同,事件改变原始对象
多播
其中多播 常见于事件,以及观察者模式

二、Action委托(系统内定义):

Action 无返回值,无参数类型
Action
Action<> 泛型(可定义参数,最多16个,无返回值):
Action泛型

三、Func<> 委托(系统内定义):

Func<> 需要一个返回值,参数个数为0 - 16 个
Func

四、匿名方法到单一(主体)Lambda表达式:

在这里插入图片描述
当多个参数以及多条语句在函数体时,需要使用大括号以及return

五、事件:

事件关键字: event
事件

六、观察者设计模式:

发布类:
class P
{
	public event Action publish;
	void call()
	{
		if(publish != null)
		publish();
	}
}
订阅类:
Class O
{
	P p = new P();
	p.publish += order;
	void order()
	{
		//相应行为
	}
}

当调用publish() 时,订阅的order会发生相对应的调用

七、 其中Func<>常见于数据比较的函数的参数,自定义的复杂数据的比较

猜你喜欢

转载自blog.csdn.net/u014147126/article/details/83548271