Member function with a parameter
using System;
namespace Console1
{
class Class1
{
delegate void myDelegate(int parameter1);
static void Main(string[] args)
{
MyClass myInstance = new MyClass();
myDelegate d = new myDelegate(myInstance.AMethod);
d(1); // <--- Calling function without knowing its name.
Test2(d);
Console.ReadLine();
}
static void Test2(myDelegate d)
{
d(2); // <--- Calling function without knowing its name.
}
}
class MyClass
{
public void AMethod(int param1)
{
Console.WriteLine(param1);
}
}
}
Multicast delegate calling static and member functions
using System;
namespace Console1
{
class Class1
{
delegate void myDelegate(int parameter1);
static void AStaticMethod(int param1)
{
Console.WriteLine(param1);
}
static void Main(string[] args)
{
MyClass myInstance = new MyClass();
myDelegate d = null;
d += new myDelegate(myInstance.AMethod);
d += new myDelegate(AStaticMethod);
d(1); //both functions will be run.
Console.ReadLine();
}
}
class MyClass
{
public void AMethod(int param1)
{
Console.WriteLine(param1);
}
}
}