what is Delegate?
A delegate is a type that references a method. Once a delegate is assigned a method, it behaves exactly like that method. The delegate method can be used like any other method, with parameters and a return value, as in this example:
Example: public delegate int PerformCalculation(int x, int y);
Delegates have the following properties:
- Delegates are similar to C++ function pointers, but are type safe.
- Delegates allow methods to be passed as parameters.
- Delegates can be used to define callback methods.
- Delegates can be chained together; for example, multiple methods can be called on a single event.
- Methods don't need to match the delegate signature exactly. For more information, see Covariance and Contravariance
- C# version 2.0 introduces the concept of Anonymous Methods, which permit code blocks to be passed as parameters in place of a separately defined method.
Sample for Delegate
delegate void Del(string s);
class TestClass { static void Hello(string s) { System.Console.WriteLine(" Hello, {0}!", s); }
static void Goodbye(string s) { System.Console.WriteLine(" Goodbye, {0}!", s); }
static void Main() { Del a, b, c, d;
// Create the delegate object a that references // the method Hello: a = Hello;
// Create the delegate object b that references // the method Goodbye: b = Goodbye;
// The two delegates, a and b, are composed to form c: c = a + b;
// Remove a from the composed delegate, leaving d, // which calls only the method Goodbye: d = c - a;
System.Console.WriteLine("Invoking delegate a:"); a("A"); System.Console.WriteLine("Invoking delegate b:"); b("B"); System.Console.WriteLine("Invoking delegate c:"); c("C"); System.Console.WriteLine("Invoking delegate d:"); d("D"); } }
|
No responses found. Be the first to respond and make money from revenue sharing program.
|