9866550012
DELEGATE
Basically it is similar like the old "C" age function pointer, where functions can be assigned like a variable and called in the run time based on dynamic conditions. C# delegate is the smarter version of function pointer which helps software architects a lot, specially while utilizing design patterns.
At first, a delegate is defined with a specific signature (return type, parameter type and order etc). To invoke a delegate object, one or more methods are required with the EXACT same signature. A delegate object is first created similar like a class object created. The delegate object will basically hold a reference of a function. The function will then can be called via the delegate object.
Sounds easy? If not lets have a look in the code snippets below.
1. Defining the delegate
public delegate int Calculate (int value1, int value2);
2. Creating methods which will be assigned to delegate object
//a method, that will be assigned to delegate objects//having the EXACT signature of the delegatepublic int add(int value1, int value2){return value1 + value2;}//a method, that will be assigned to delegate objects//having the EXACT signature of the delegatepublic int sub( int value1, int value2){return value1 - value2;}
3. Creating the delegate object and assigning methods to those delegate objects
//creating the class which contains the methods//that will be assigned to delegate objectsMyClass mc = new MyClass();//creating delegate objects and assigning appropriate methods//having the EXACT signature of the delegateCalculate add = new Calculate(mc.add);Calculate sub = new Calculate(mc.sub);
4. Calling the methods via delegate objects
//using the delegate objects to call the assigned methodsConsole.WriteLine("Adding two values: " + add(10, 6));Console.WriteLine("Subtracting two values: " + sub(10,4));
No comments:
Post a Comment