我正在用这样的行更新一些旧的Managed C++代码:
instanceOfEventSource->add_OnMyEvent( new EventSource::MyEventHandlerDelegate(this, MyEventHandlerMethod) );
哪里
EventSource是发布事件的类
instanceOfEventSource是该类的一个实例
EventSource :: MyEventHandlerDelegate是事件的委托类型
MyEventHandlerMethod是当前类(其中"this"是一个实例)中的(非静态)方法,其签名与EventSource :: MyEventHandlerDelegate匹配
C++/CLI中的正确语法是什么?
语法类似于C#,换句话说,+=
重载使这成为可能:
instanceOfEventSource.MyEvent += gcnew EventSource::MyEventHandlerDelegate(this, &MyClass::MyEventHandlerMethod);
类似于删除.但是,与C#不同,您可能不会省略事件处理程序委托的显式实例化,因此这会生成相当冗长的代码.