【c#基础】委托、Lambda表达式和事件

委托是寻址方法的.Net版本。委托是类型安全的类,定义了返回类型和参数类型。

委托类不仅包含对方法的引用,也可以包含多个方法的引用。

lambda表达式与委托直接相关。当参数是委托类型时,就可以使用lambda表达式实现委托引用方法。

委托可以砸定义类的任何相同地方定义委托。可以在在类内部和外部定义委托。

也可以在名称空间中把委托定义为顶层对象。

弱事件:

通过事件,可直接链接发布程序和侦听器。但是,垃圾回收方面存在问题。例如。

如果不再直接引用侦听器,发布程序就仍有一个引用。

垃圾回收器不能清空侦听器占用的内存,因为发布程序仍保有一个引用,会针对侦听器触发事件。

这种强连接可以通过弱事件模式来解决。即使用WeakEventManager 作为发布程序和侦听器之间的中介。

 WeakEventManager<T> 在System.Windows 程序集中定义 不属于.net core 。

要使用弱事件 要引用IWeakEventListener 实现接口定义的方法

ReceiveWeakEvent

调用方式。

猜你喜欢

转载自www.cnblogs.com/SignX/p/11222467.html