Delegates roughly similar to function pointers in C++.
A delegate declaration defines a reference type that can be used to encapsulate a method with a specific signature and can be used later.
How to use
The type safety of delegates requires the function you pass as a delegate to have the same signature as the delegate declaration.
See the fallowing program for more information on using delegates.
namespace delegates
{
    //Create a new category
    public delegate int MyDelegate(int x, int y);
    public class MyDelegateProgram
    {
        public static int FunAdd(int x, int y)
        {
            return x + y;
        }
        public static int FunMultiply(int x, int y)
        {
            return x * y;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
         //instance and initialization
         MyDelegate DelAdd = new MyDelegate(MyDelegateProgram.FunAdd);
         MyDelegate DelMul = new MyDelegate(MyDelegateProgram.FunMultiply);
         //invoking function using delegates
         Console.WriteLine("Addition : " + DelAdd(4, 5));
         Console.WriteLine("Multiplication : " + DelMul(4, 5));
         //array of Delegates-----------
         Console.WriteLine("Using Array of Delegate");
         MyDelegate[] arrDelegates;
         arrDelegates = new MyDelegate[2]; //size of delegate array
         arrDelegates[0] = new MyDelegate(MyDelegateProgram.FunAdd);
         arrDelegates[1] = new MyDelegate(MyDelegateProgram.FunMultiply);
         foreach (MyDelegate item in arrDelegates)
         {
             Console.WriteLine(item(4, 5));
         }
         Console.ReadKey();
        }
    }
}
 
No comments:
Post a Comment