[Delphi] 比较事件响应者是否是特定的函数

Delphi 中的事件实际上是一个 TMethod 类型的双指针结构体,但是 Delphi 并没有提供简单的写法,如:

这么写看起来是完美的,但是却是无法编译通过的。所以,我们提供一个额外的模板类来做这个事情:

然后我们要比较时,只需写成 TEventComparer<事件类型>.Equals(事件1,事件2)就可以了,如这样:

好吧,看起来麻烦了一点,在官方改进编译器以支持前面的写法之前,这算是一个折中吧。

分享到: