Mega Code Archive

 
Categories / Visual C++ .NET / Delegate
 

Adding and removing Delegates

#include "stdafx.h" using namespace System; delegate void OutputMessage(String ^name); void SayHello(String ^name){     Console::Write("Hello there ");     Console::WriteLine(name); } ref class MyClass{ public:     static void Print1(String ^name);     void Print2(String ^name);     void Print3(String ^name); }; void MyClass::Print1(System::String ^name){     Console::Write("1 ");     Console::WriteLine(name); } void MyClass::Print2(System::String ^name){     Console::Write("2 ");     Console::Write(name); } void MyClass::Print3(System::String ^name){     Console::Write("3 ");     Console::WriteLine(name); } void main(){     OutputMessage^ say;     say = gcnew OutputMessage(&SayHello);     say += gcnew OutputMessage(&MyClass::Print1);     MyClass ^computer = gcnew MyClass();     say = say + gcnew OutputMessage(computer, &MyClass::Print2);     say += gcnew OutputMessage(computer, &MyClass::Print3);     say->Invoke("s1");     say = say - gcnew OutputMessage(&MyClass::Print1);     say -= gcnew OutputMessage(computer, &MyClass::Print3);     say("s1"); }