예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World !");
            Program         p     = new Program();
            delegatePointer mydel = p.print;

            mydel += p.display;      //multicast delegate without returntype,parameters
            mydel();
            mydel -= p.print;        //removing delegate reference
            mydel();

            calAreaPointer cptr = Calculate.calArea;

            //double area = cptr(20);
            //Console.WriteLine("Area : "+area);

            cptr += Calculate.calDist;   //multicast delegate with returntype,parameters
            double dist = cptr(32);

            Console.WriteLine("Distance : " + dist);



            Console.ReadKey();
        }
예제 #2
0
 public static void Main()
 {
     calAreaPointer cpointer = new calAreaPointer(delegate(int r)
     {
         return(3.14 * r * r);
     });
     double area = cpointer(20);
 }
예제 #3
0
        static void Main(string[] args)
        {
            calAreaPointer cptr = new calAreaPointer(delegate(double r) { return(3.14 * r * r); });
            // Program p = new Program();
            //// Console.WriteLine("hello world!");
            // deligatePointer mydeligate = new deligatePointer(p.print);
            // //deligatePointer mydeligate = p.print;
            // mydeligate += p.Display;//multi cast delegate
            // mydeligate();
            // mydeligate -= p.print;
            // mydeligate();
            // calAreaPointer cptr = Caluclator.calArea;

            //cptr += Caluclator.calArea1;
            //lamda expression
            //calAreaPointer cptr1 = (r => 3.14 * r * r);
            //double area = cptr(100.00);
            //Console.WriteLine(area);


            //public void print()
            //{
            //    Console.WriteLine("welcome delegate");
            //}
            //public void Display()
            //{
            //    Console.WriteLine("welcome to multi cASTING");
            //}
            // prebuild deligates func<>,Action<>,Predicate<>
            Func <double, double> f1 = (r => 3.14 * r * r);
            double area2             = f1(1);

            Console.WriteLine(area2);
            Action <string> act = (X => Console.WriteLine(X));

            act("welcoome");
            Predicate <string> pt = (y => y.Length > 3);

            Console.WriteLine(pt("kartrhik"));
            int[]         array = new int[] { 1, 2, 3, 4 };
            List <string> names = new List <string>();

            names.Add("ajay");
            names.Add("karethik");
            names.Add("sai");
            int x = array.Count(x1 => x1 > 4);

            Console.WriteLine(x);
            List <string> sn = names.FindAll(y => y.Contains('i'));

            foreach (string n in sn)
            {
                Console.WriteLine(pt("kartrhik"));
            }
        }
예제 #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
            Program         p          = new Program();
            delegatePointer mydelegate = p.print;

            mydelegate();
            calAreaPointer cpt  = Calculate.CalArea;
            double         area = cpt(20);

            Console.WriteLine(area);
            Console.ReadLine();
        }
예제 #5
0
        static void Main(string[] args)
        {
            Console.WriteLine("hello");
            Program p = new Program();
            //deligatePointer myde = new deligatePointer(print);
            deligatePointer myde = p.print;

            myde();
            // Calculate cr = new Calculate();
            calAreaPointer cptr = new calAreaPointer(Calculate.CalArea);
            double         area = cptr(20);


            Console.WriteLine(area);
            Console.ReadLine();
        }
예제 #6
0
        static void Main(string[] args)
        {
            //Console.WriteLine("Hello world");
            Program         p          = new Program();
            deligatePointer mydeligate = p.print;

            mydeligate += p.display;                 //multicast delegate
            mydeligate();
            mydeligate -= p.print;                   //to remove print
            mydeligate();
            calAreaPointer cptr = Calculate.calArea; //create a delegate object

            cptr += Calculate.calDistance;           //multiple return only last method
            double area = cptr(20);

            Console.WriteLine(area);
            Console.ReadLine();
        }
예제 #7
0
        static void Main(string[] args)
        {
            //method reference  directly
            //calAreaPointer cptr = new calAreaPointer(calArea);
            //anonymous method
            calAreaPointer cptr = new calAreaPointer(delegate(double r) {
                return(3.14 * r * r);
            });
            //above code can simpliy in lambda
            calAreaPointer cptr1 = (r => 3.14 * r * r);
            double         area1 = cptr1(10);
            double         area  = cptr(12);

            Console.WriteLine(area);
            Console.WriteLine(area1);
            //prebuild delegates Func<>,Action<>,Predicate<>
            //Func delegate can have input and output parameter
            Func <double, double> f1 = (r => 3.14 * r * r);
            double area2             = f1(14);

            Console.WriteLine(area2);
            Action <string> act = (x => Console.WriteLine(x));

            act("Welcome");
            Predicate <string> pt = (y => y.Length > 3);

            int[]         array = new int[] { 1, 3, 4, 5 };
            List <string> names = new List <string>();

            names.Add("Ramya");
            names.Add("Pooja");
            names.Add("Sai");
            int c1 = array.Count(c => c > 2);

            Console.WriteLine(c1);
            List <string> sn = names.FindAll(y => y.Contains('y'));

            foreach (string n in sn)
            {
                Console.WriteLine(n);
            }
            //Console.WriteLine(pt("cts"));
            Console.ReadLine();
        }
예제 #8
0
        static void Main(string[] args)
        {
            calAreaPointer cptr = new calAreaPointer(delegate(double r) { return(3.14 * r * r); });
            double         area = cptr(12);

            Console.WriteLine(area);
            //above code is simplified with lambda
            calAreaPointer cptr1 = (r => 3.14 * r * r);
            double         area1 = cptr1(10);

            Console.WriteLine(area1);
            Func <double, double> f1 = r => 3.14 * r * r;
            double area2             = f1(14);

            Console.WriteLine(area2);

            Action <string> act = (x => Console.WriteLine(x));

            act("welcome");
            Predicate <string> pt = (y => y.Length > 3);

            int[]         array = new int[] { 1, 2, 3, 4 };
            List <string> names = new List <string>();

            names.Add("arun");
            names.Add("raj");
            names.Add("jai");
            int s = array.Count(x => x > 4);

            Console.WriteLine(s);
            List <string> sn = names.FindAll(y => y.Contains('y'));

            foreach (string n in sn)
            {
                Console.WriteLine(n);
            }

            Console.WriteLine(pt("cts"));

            Console.ReadLine();
        }
예제 #9
0
        static void Main(string[] args)
        {
            calAreaPointer cptr = new calAreaPointer(delegate(double r) { return(3.14 * r * r); });
            Program        p    = new Program();
            // Console.WriteLine("hello world!");
            deligatePointer mydeligate = new deligatePointer(p.print);

            //deligatePointer mydeligate = p.print;
            mydeligate += p.Display;//multi cast delegate
            mydeligate();
            mydeligate
                = p.print;
            mydeligate();
            calAreaPointer cptr = Caluclator.calArea;

            cptr += Caluclator.calArea1;
            lamda expression
            calAreaPointer cptr1 = (r => 3.14 * r * r);
            double         area  = cptr(100.00);

            Console.WriteLine(area);
예제 #10
0
        static void Main(string[] args)
        {
            //anonymous method
            calAreaPointer cptr = new calAreaPointer(delegate(double r) { return(3.14 * r * r); });
            //above code you can simplify wih lambda
            calAreaPointer cptr1 = (r => 3.14 * r * r);
            double         area1 = cptr1(10);

            Console.WriteLine(area1);
            double area = cptr(12);

            Console.WriteLine(area);
            //prebuild delegates Func<>,Action<>,Predicate<>
            Func <double, double> f1 = (r => 3.14 * r * r);
            double area2             = f1(14);

            Console.WriteLine(area2);
            Action <string> act = (y => Console.WriteLine(y));

            act("Welcome");
            Predicate <string> pt = (y => y.Length > 3);

            Console.WriteLine(pt("chennai"));
            int[]         array = new int[] { 1, 3, 4, 5 };
            List <string> names = new List <string>();

            names.Add("ajay");
            names.Add("raj");
            names.Add("sai");
            int x = array.Count(a1 => a1 > 2);

            Console.WriteLine(x);
            List <string> sn = names.FindAll(y => y.Contains('y'));

            foreach (string n in sn)
            {
                Console.WriteLine(n);
            }
            Console.ReadLine();
        }
예제 #11
0
        static void Main(string[] args)
        {
            Program p = new Program();
            //deligatePointer mydel = new deligatePointer(p.print);
            deligatePointer mydel = p.print;

            mydel += p.display;//To do multicast method calls.
            calAreaPointer cal = Caluculate.calArea;

            cal += Caluculate.caldist;
            double a1 = cal(20);

            cal += Caluculate.caldist;
            double d = cal(20);

            Console.WriteLine("distance is..." + d);
            Console.WriteLine("area of a square is..." + a1);
            mydel();
            mydel -= p.print;
            mydel();
            Console.ReadKey();
        }
예제 #12
0
        static void Main(string[] args)
        {
            //Method reference directly
            calAreaPointer cptr1 = new calAreaPointer(calArea);

            /*Anonymous method
             * calAreaPointer cptr = new calAreaPointer(delegate  (double r)
             *                                       {
             *                                       return (3.14 * r * r);
             *                                       }
             *                                       );
             * double area = cptr(12);
             * Console.WriteLine(area);
             */

            //Lambda Expression  (Simplified form of above code)

            calAreaPointer cptr = (r => 3.14 * r * r);
            double         area = cptr(10);

            Console.WriteLine(area);
            Console.ReadKey();
        }
예제 #13
0
        static void Main(string[] args)
        {
            Console.WriteLine("hello world");
            Program p = new Program();

            deligatePointer mydel = p.print;

            mydel += p.display;//multicast deligate
            mydel();
            mydel -= p.print;
            mydel();


            calAreaPointer cptr = Calci.calArea;



            cptr += Calci.caldistance;//multicast delegate having returntype primitive datatype
            double area = cptr(20);

            Console.WriteLine(area);//it will retu-rn last value;

            Console.ReadKey();
        }