delegate invocation list : Delegate « Delegate « Visual C++ .NET






delegate invocation list

 
#include "stdafx.h"
using namespace System;

delegate String^ MyDelegate();

ref class MyClass
{
   public:

   String^ f() { return "MyClass::f"; }
   String^ g() { return "MyClass::g"; }
   String^ h() { return "MyClass::h"; }
};

int main()
{
   MyDelegate^ d;
   MyClass^ r = gcnew MyClass();

   d =  gcnew MyDelegate(r, &MyClass::f);

   d = (MyDelegate^) d->Combine(d, gcnew MyDelegate(r, &MyClass::g));
   d = (MyDelegate^) d->Combine(d, gcnew MyDelegate(r, &MyClass::h));

   String^ s = d->Invoke();
   Console::WriteLine("Return value was {0}", s);

   d = (MyDelegate^) d->Remove(d, gcnew MyDelegate(r, &MyClass::g));

   s = d->Invoke();
   Console::WriteLine("Return value was {0}", s);

   for each (MyDelegate^ del in d->GetInvocationList())
   {
       s = del->Invoke();
       Console::WriteLine("Return value was {0}", s);
   }

}

   
  








Related examples in the same category

1.Adding and removing Delegates
2.delegate operators
3.Define delegate function