예제 #1
0
        static void Main(string[] args)
        {
            #region Schritt3
            Console.WriteLine("\n ### COSTUM DELEGATE ###");
            MeinDelegat meinDelegat = new MeinDelegat(Addiere);
            //int resultat = meinDelegat.Invoke(2, 3);
            // es funktioniert auch ohne Invoke()
            int resultat = meinDelegat(2, 3);
            Console.WriteLine($"resultat: {resultat}");

            //meinDelegat = meinDelegat + Subtrahiere;
            // kürzer:
            meinDelegat += Subtrahiere;
            resultat     = meinDelegat(3, 4);
            Console.WriteLine($"resultat: {resultat}");
            #endregion


            #region Vordefinierte Delegaten
            Console.WriteLine("\n ### FUNC ###");
            // <arg1type, arg2type, returntype>
            Func <int, int, int> meinFuncDelegat = Addiere;
            meinFuncDelegat += Subtrahiere;
            Console.WriteLine($"meinFuncDelegat(5,6): {meinFuncDelegat(5,6)}");
            #endregion

            #region Use method with callback
            Console.WriteLine("\n ### CALLBACK ###");
            int ergebnis = FühreAus(Addiere, 4, 5);
            Console.WriteLine($"ergebnis: {ergebnis}");
            #endregion

            #region arrow
            // Arrow-Function / Pfeilfunktion / Lambda
            Console.WriteLine("\n ### ARROW ###");
            // int ergebnis2 = FühreAus((int a, int b) => { return a * b; }, 5, 6);
            int ergebnis2 = FühreAus((int a, int b) => a * b, 5, 6);
            Console.WriteLine($"ergebnis2: {ergebnis2}");
            #endregion

            #region Lists & Delegates Step2
            Console.WriteLine("\n ### Lists & Delegates ###");
            List <string> Städteliste = new List <string>()
            {
                "Karlsruhe", "Hamburg", "Hannover", "Stuttgart"
            };
            string gefundeneStadt = Städteliste.FindLast(SucheStadtMitH);
            Console.WriteLine($"gefundeneStadt: {gefundeneStadt}");

            Console.WriteLine("\n ### Lists & Arrowfunctions ###");
            // gefundeneStadt = Städteliste.FindLast(); //mitK
            Console.WriteLine($"gefundeneStadt: {gefundeneStadt}");
            #endregion


            Console.ReadKey();
        }
예제 #2
0
        static void Sortiere(string[] s, MeinDelegat meinDelegat)
        {
            int n = s.Length;

            for (int i = 1; i < n; i++)
            {
                String temp = s[i];



                int j = i - 1;
                while (j >= 0 && temp.Length < s[j].Length)
                {
                    s[j + 1] = s[j];
                    j--;
                }
                s[j + 1] = temp;
            }
        }
예제 #3
0
        static void Sort(int[] arr, MeinDelegat d, bool Reverse = false)
        {
            int len = arr.Length;

            for (int i = 1; i < len; i++)
            {
                for (int j = 0, stop = len - i; j < stop; j++)
                {
                    if (Reverse ? !d(arr[j], arr[j + 1]) : d(arr[j], arr[j + 1]))
                    {
                        swap(j, j + 1);
                    }
                }
            }
            void swap(int i, int j)
            {
                int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;
            }
        }
예제 #4
0
        static void Main(string[] args)

        {
            #region Schritt3
            MeinDelegat meinDelegat = new MeinDelegat(Addiere);
            //int resultat = meinDelegat.Invoke(2, 3);
            //es funktioniert auch ohne Invoce()
            int resultat = meinDelegat(2, 3);
            Console.WriteLine($"resultat: {resultat}");

            //meinDelegat = meinDelegat + Subtrahiere;
            //kürzer:
            meinDelegat += Subtrahiere;
            resultat     = meinDelegat(3, 4);
            Console.WriteLine($"resultat: {resultat}");

            #endregion
            Console.ReadKey();
        }
예제 #5
0
        static void Main(string[] args)
        {
            int[] arr = { 9, 29, 3, 11, 15, 16, 42, 31 };
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Kontrollausgabe unsortiert: \n");
            Console.ResetColor();
            Ausgabe(arr);
            MeinDelegat d = new MeinDelegat(XgroesserY);

            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("\nKontrollausgabe aufsteigend sortiert: \n");
            Console.ResetColor();
            Sort(arr, d);
            Ausgabe(arr);
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("\nKontrollausgabe absteigend(reversed) sortiert: \n");
            Console.ResetColor();
            Sort(arr, d, true);
            Ausgabe(arr);
            Console.ReadKey();
        }
예제 #6
0
        static void Main(string[] args)
        {
            string[] arr = { "Beere", "Autobahnpolizist", "Tee" };
            int      n   = arr.Length;

            foreach (string s  in arr)
            {
                Console.WriteLine(s);
            }
            MeinDelegat delegat = AlaengerB;

            Sortiere(arr, delegat);
            foreach (string s in arr)
            {
                Console.WriteLine(s);
            }
            delegat = AeB;
            Sortiere(arr, delegat);
            foreach (string s  in arr)
            {
                Console.WriteLine(s);
            }
            Console.ReadKey();
        }