刚刚发现了一件有趣的事情:
var
Queue : TQueue <TProc>;
MyProc : TProc;
...
MyProc := Queue.Dequeue;
我想你明白这里的意图。然而,编译器认为我想要将 Queue.Dequeue
方法(类型为“对象的过程”)存储在 MyProc
中,并报告错误。
E2010 Incompatible Types: 'TProc' und 'Procedure of object'
我想分享一个解决方法,步骤如下:
MyProc := TProc (Pointer (Queue.Dequeue));
有没有更优雅的解决方案?