委托是寻址方法的.Net版本。委托是类型安全的类,定义了返回类型和参数类型。
委托类不仅包含对方法的引用,也可以包含多个方法的引用。
lambda表达式与委托直接相关。当参数是委托类型时,就可以使用lambda表达式实现委托引用方法。
委托可以砸定义类的任何相同地方定义委托。可以在在类内部和外部定义委托。
也可以在名称空间中把委托定义为顶层对象。
弱事件:
通过事件,可直接链接发布程序和侦听器。但是,垃圾回收方面存在问题。例如。
如果不再直接引用侦听器,发布程序就仍有一个引用。
垃圾回收器不能清空侦听器占用的内存,因为发布程序仍保有一个引用,会针对侦听器触发事件。
这种强连接可以通过弱事件模式来解决。即使用WeakEventManager 作为发布程序和侦听器之间的中介。
WeakEventManager<T> 在System.Windows 程序集中定义 不属于.net core 。
要使用弱事件 要引用IWeakEventListener 实现接口定义的方法
ReceiveWeakEvent
调用方式。