Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole);

            f1.Invoke("test");

            MinDelegate1 f2 = MinSkrivTilConsole;

            f2.DynamicInvoke("test");

            MinDelegate1 f3 = MinSkrivTilConsole;

            f3 += Console.WriteLine;
            f3("test");

            f1 -= MinSkrivTilConsole;
            f2 -= MinSkrivTilConsole;
            f3 -= MinSkrivTilConsole;
            f3 -= Console.WriteLine;
            if (System.Diagnostics.Debugger.IsAttached)
            {
                Console.Write("Press any key to continue . . . ");
                Console.ReadKey();
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            //MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole);
            //f1.Invoke("test");

            MinDelegate1 f1 = MinSkrivTilConsole;

            f1("test");

            MinDelegate1 f2 = MinSkrivTilConsole;

            f2("test2");

            //MinDelegate2 f2 = MinSkrivTilConsole; //Dette virkede også
            //f2("test2");

            MinDelegate1 f3 = MinSkrivTilConsole;

            f3 += Console.WriteLine;
            f3("test3");

            f1 -= MinSkrivTilConsole;
            f2 -= MinSkrivTilConsole;
            f3 -= MinSkrivTilConsole;
            f3 -= Console.WriteLine;
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Delegate - simpel");

            MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole);

            f1.Invoke("test");


            MinDelegate1 f2 = MinSkrivTilConsole;

            f2("test");

            MinDelegate1 f3 = MinSkrivTilConsole;

            f3 += Console.WriteLine;
            f3("dav");

            f1 -= MinSkrivTilConsole;
            f2 -= MinSkrivTilConsole;
            f3 -= MinSkrivTilConsole;
            f3 -= MinSkrivTilConsole;

            //f1("q");
            //f2("w");
            //f3("z");
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            MinSkrivTilConsole("Text");

            MinDelegate1 m1 = new MinDelegate1(MinSkrivTilConsole);

            m1.Invoke("hatten er fin");

            MinDelegate1 m2 = MinSkrivTilConsole;

            m2("frakken er også flot");

            MinDelegate1 m3 = MinSkrivTilConsole;

            m3 += Console.WriteLine;

            m3("bøllehat");

            Console.WriteLine(m3.ToString());

            m1 -= MinSkrivTilConsole;
            m2 -= MinSkrivTilConsole;
            m3 -= MinSkrivTilConsole;
            m3 -= Console.WriteLine;

            /*
             * m1 = null;
             * m2 = null;
             * m3 = null;
             */
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            Action <string> f1 = MinSkrivTilConsole;  //Dette er også en delegate, men den kræver ikke definition (Action er en Void)

            f1.Invoke("test1");
            f1 -= MinSkrivTilConsole;

            MinDelegate1 f2 = new MinDelegate1(MinSkrivTilConsole);  //Løsning med Delegate kræver at delegate defineres i namespace

            f2("test2");
            f2 -= MinSkrivTilConsole;

            Func <int> f3 = metode1;  //Dette er en delegate, der retunere en værdi

            f3();

            int metode1()
            {
                Console.WriteLine("**** Test3 ****");
                return(0);
            }

            Action f4 = () => Console.WriteLine("**** Test4 ****");  //Her bruges Lamda metoden. Det er en meget komprimeret metode

            f4();


            if (System.Diagnostics.Debugger.IsAttached)
            {
                Console.Write("Press any key to continue . . . ");
                Console.ReadKey();
            }
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            Console.WriteLine("*");
            MinDelegate1 f1 = new MinDelegate1(Console.WriteLine);

            f1 += MinSkriv;
            f1.Invoke("*");
            f1("*");

            Console.ReadKey();
            f1 -= MinSkriv;
            f1 -= Console.WriteLine;
        }
Ejemplo n.º 7
0
        static void Main(string[] args)
        {
            //Metode1();
            // \/ func pointer object\\
            MinDelegate1 f1 = new MinDelegate1(Metode1); // f1 = object which is referencing to Metode1.

            f1.Invoke();

            MinDelegate4 l1 = Metode2; // Reference to Metode2;

            l1 += Metode3;
            l1 += LogTilFil;

            l1.Invoke("World");

            Console.ReadLine();
        }
Ejemplo n.º 8
0
        static void Main(string[] args)
        {
            MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole);

            f1.Invoke("Test");
            MinDelegate1 f2 = MinSkrivTilConsole;

            f2.Invoke("Test2");
            MinDelegate1 f3 = MinSkrivTilConsole;

            f3 += Console.WriteLine;
            f3("Test3");

            f1 -= MinSkrivTilConsole;
            f2 -= MinSkrivTilConsole;
            f3 -= MinSkrivTilConsole;
        }
Ejemplo n.º 9
0
        static void Main(string[] args)
        {
            MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole);

            f1?.Invoke("test1");

            MinDelegate1 f2 = MinSkrivTilConsole;

            f2("test2");

            MinDelegate1 f3 = MinSkrivTilConsole;

            f3 += Console.WriteLine;
            f3("test3");

            f1 = f1 - MinSkrivTilConsole;
            f1 = f1 - MinSkrivTilConsole; //Despite being empty at this point, you can still """remove""" functions from the delegate, this does not throw an exception.
            f1 = f1 - MinSkrivTilConsole;


            f2 -= MinSkrivTilConsole;

            f3 -= MinSkrivTilConsole;
            f3 -= Console.WriteLine;

            f1("test4"); //Using a null delegate, however, will throw an exception.
            f2("test5");
            f3("test6");



            if (System.Diagnostics.Debugger.IsAttached)
            {
                Console.Write("Press any key to continue . . . ");
                Console.ReadKey();
            }
        }
Ejemplo n.º 10
0
        static void Main(string[] args)
        {
            MinDelegate1 f1 = new MinDelegate1(MinSkrivTilConsole);

            f1.Invoke("Virker det? Ja!");

            MinDelegate1 f2 = MinSkrivTilConsole;

            f2("Virker det igen? Ja sørme ja!");

            Console.WriteLine();
            Console.WriteLine("Mellemrum");
            MinDelegate1 f3 = MinSkrivTilConsole;

            f3 += MinSkrivTilConsole;
            f3 += Console.WriteLine;
            f3("Skulle også gerne virke");

            f1 -= MinSkrivTilConsole;
            f2 -= MinSkrivTilConsole;
            f3 -= MinSkrivTilConsole;
            f3 -= MinSkrivTilConsole;
            f3 -= Console.WriteLine;
        }
Ejemplo n.º 11
0
        static void Main(string[] args)
        {
            Metode1();



            MinDelegate1 f1 = new MinDelegate1(Metode1);

            f1.Invoke();

            Action f1a = Metode1;

            f1a.Invoke();

            LogDelegate l1 = Metode2;

            l1.Invoke("!!!");

            Action <string> l2 = Metode2;

            l2 += Console.WriteLine;
            l2.Invoke("////");


            Action <int, bool, double> l3a;


            Func <int, int> f4 = Test;

            Console.WriteLine(f4(5));

            Func <int, int, int> f5 = LægSammen;

            Console.WriteLine(f5(6, 6));


            return;
            //LogDelegate l1 = new LogDelegate(Metode2);
            //l1.Invoke("!!!");

            //LogDelegate l1 = Metode2;
            //l1 += Metode2;
            //l1 += Metode2;
            //l1 += Console.WriteLine;
            //l1 += LogTilFil;

            //l1.Invoke("!!!");
            //l1("123");

            //foreach (var item in l1.GetInvocationList())
            //{
            //    item.DynamicInvoke("ss");
            //}

            ////l1 -= LogTilFil;
            ////l1.Invoke("!!!");

            //MinDelegate3 f3 = LægSammen;
            //f3 += LægSammen2;
            //int t = f3(4, 4);
            //Console.WriteLine(t);

            ////int r = f3.Invoke(4, 5);
        }