-Я хочу вызывать событие всякий раз, когда вызывается метод showmessage. Я хочу перехватить его в коде C #.
-Я написал событие для него.
-Правильно ли эточто я сделал в функции Initialize, чтобы связать делегата с функцией showmessage
- как использовать это событие в c #
C++/CLI
delegate void progressmsgdisplay(System::String ^ message);
progressmsgdisplay ^ progressMsgNotify;
void Mclass::ShowMessage(System::String ^ message)
{
MessageBox(NULL, m_msg, m_box, NULL);
notify(message);
}
event progressmsgdisplay ^ notify
{
void add(progressmsgdisplay ^ d)
{
progressMsgNotify += d;
}
void remove(progressmsgdisplay ^ d)
{
progressMsgNotify -= d;
}
void raise(System::String ^ msg)
{
progressmsgdisplay ^ tmp = progressMsgNotify;
if (tmp)
{
tmp->Invoke(msg);
}
}
}
//void Mclass::Initialize(System::String ^ strProgressMsg)
//{
// progressMsgNotify=gcnew progressmsgdisplay(this,&Mclass::ShowMessage);
//}
-Mclass - это имя класса, в котором всевышесказанное объявлено и определено
C#
void display(string progressnotification)
{
Console.Out.WriteLine(progressnotification);
}
void initialize()
{
first = new Mclass();
first.notify()+=display;
}
, это сделало трюк