1
4
如果创建一个引用实例方法的委托,它将捕获
作为一个额外的复杂因素,你可以 延伸 方法,就好像它们是扩展类型上的实例方法一样:
至于 为什么 你可以这样做:因为它很有用,而且没有理由 不 允许你这样做:) |
2
1
C中没有静态函数,它们实际上是静态方法(因此有静态方法和实例方法)。每个委托基本上都是指向方法和
|
3
1
委托的好处在于它们只对静态方法和实例方法起作用。如果将静态方法分配给委托,静态方法将简单地按原样使用,因为它不需要任何非静态上下文来工作。例如,对实例的引用存储在方法指针上,以便
大多数时候,这“只是有效的”,你不需要考虑任何事情。但是有一个警告:如果将实例方法分配给委托,则创建对该实例的另一个引用,并且只要该方法仍然分配给委托(或订阅了一个事件),则还会有对该实例的引用,因此GC将永远不会收集该实例。这就是为什么你在清理完自己之后,应该总是取消订阅所有事件的原因。 |