Demonstrates a simple form of a delegate

image_pdfimage_print

   


/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// SimpDlgt.cs -- Demonstrates a simple form of a delegate
//
//                Compile this program using the following command line:
//                    C:>csc SimpDlgt.cs
using System;

namespace nsDelegate
{
// Declare the delegate. This actually creates a new class definition.
    delegate double MathOp (double value);

    public class SimpDlgt
    {
        static public void Main ()
        {
// Declare an object of the delegate type.
            MathOp DoMath;
// Create the delgate object using a method name.
            DoMath = new MathOp (GetSquare);
// Execute the delegate. This actually calls the Invoke() method.
            double result = DoMath (3.14159);
// Show the result.
            Console.WriteLine (result);
// Assign another method to the delegate object
            DoMath = new MathOp (GetSquareRoot);
// Call the delegate again.
            result = DoMath (3.14159);
// Show the result.
            Console.WriteLine (result);
        }
// Return the square of the argument.
        static double GetSquare (double val)
        {
            return (val * val);
        }
// Return the square root of the argument.
        static double GetSquareRoot (double val)
        {
            return (Math.Sqrt (val));
        }
    }
}