Beispiel #1
0
        public static void Main()
        {
            ColorText.WriteInColor(ConsoleColor.Cyan, "==== Try Catch Finally ====\n");
            int[] array = new int[10];
            TryCatchFinallyPresentation.Present("datadasdasdsadsadsada.txt", ref array, 5);
            TryCatchFinallyPresentation.Present("data.txt", ref array, 15);
            TryCatchFinallyPresentation.Present("data.txt", ref array, 5);
            Console.ReadKey();

            ColorText.WriteInColor(ConsoleColor.Cyan, "\n==== Functions, parameters and references ====\n");
            FunctionsPresentation.Present();
            Console.ReadKey();

            ColorText.WriteInColor(ConsoleColor.Cyan, "\n==== Classes and inheritance ====\n");
            ObjectsPresentation.Present();
            Console.ReadKey();

            ColorText.WriteInColor(ConsoleColor.Cyan, "\n==== Interfaces ====\n");
            InterfacePresentation.Present();
            Console.ReadKey();

            ColorText.WriteInColor(ConsoleColor.Cyan, "\n==== List<T> Queue<T> Stack<T> ====\n");
            CollectionPresentation.Present();
            //Console.ReadKey();

            ColorText.WriteInColor(ConsoleColor.Cyan, "\n==== List<T> Queue<T> Stack<T> ====\n");
            CollectionPresentation.Present();
            Console.ReadKey();

            ColorText.WriteInColor(ConsoleColor.Cyan, "\n==== Koniec prezentacji ====\n");
            Console.ReadKey();
        }
Beispiel #2
0
        static void PresentList()
        {
            ColorText.WriteInColor(ConsoleColor.Cyan, "= List =\n"); // lista to kolekcja zdolna do przechwywania
            // danych z możliwością rozszerzeania się w przypadku takiej potrzeby
            // lista zapewnia pełny dostęp do wszystkich swoich elementów

            List <TestClass> list = new List <TestClass>();

            list.Add(new TestClass("cats")); Console.WriteLine("Added object to list...");
            list.Add(new TestClass("dogs")); Console.WriteLine("Added object to list...");
            list.Add(new TestClass("goats")); Console.WriteLine("Added object to list...");

            Console.WriteLine($"\nList length = {list.Count}\n");

            list.Add(new TestClass("snakes")); Console.WriteLine("Added object to list...");
            list.Add(new TestClass("birds")); Console.WriteLine("Added object to list...");

            Console.WriteLine($"\nList length = {list.Count}\n");

            list.RemoveAt(1); Console.WriteLine("Removed object with index 1...");
            list[3] = new TestClass("lizards"); Console.WriteLine("Changed object with index 0...");

            Console.WriteLine($"\nList length = {list.Count}\n");

            Console.WriteLine("Printing list: ");
            foreach (var item in list)          // foreach działa na liście dzięki temu,
                                                // że ta dziedziczy z IEnumerable
            {
                Console.WriteLine("\t" + item.variable);
            }
            Console.WriteLine();
        }
Beispiel #3
0
        public static void ReadFromFileIntoIntArray(string path, ref int[] array, int index)
        {
            StreamReader stream = new StreamReader(path);

            try {
                // spróbuj przeczytać plik do końca,
                // przekowertować tekst na liczbę,
                // a następnie wpisać ją do tablicy.
                // Mogą wydażyć się tu co najmniej 3 wyjątki

                string s = stream.ReadToEnd();
                array[index] = int.Parse(s);
                Console.WriteLine("Operacja wykonana pomyślnie");
            } catch (Exception ex) {
                // Jeżeli wyjątek wystąpi przechwytujemy go
                // aby uniknąć wysypania się programu

                ColorText.WriteError($"Przechwycono wyjątek: {ex.GetType()}");
            } finally {
                // Niezależnie czy uda się wykonać zadanie
                // strumień musi zostać zamknięty
                // więc stream.Close() umieszczam w finally{}

                if (stream != null)
                {
                    stream.Close();
                }
                Console.WriteLine($"Strumień zamknięty.");
            }
        }
Beispiel #4
0
        static void PresentQueue()
        {
            ColorText.WriteInColor(ConsoleColor.Cyan, "= Queue =\n"); // kolejka to kolekcja zdolna do przechwywania
            // danych z możliwością rozszerzeania się w przypadku takiej potrzeby
            // kolejka pozwala na wykolejkowanie najwcześniej zakolejkowanego
            // elementu -- nie można wybierać z niej elementów po indeksie

            Queue <TestClass> queue = new Queue <TestClass>();

            queue.Enqueue(new TestClass("cats")); Console.WriteLine("Enqueued object to queue...");
            queue.Enqueue(new TestClass("dogs")); Console.WriteLine("Enqueued object to queue...");
            queue.Enqueue(new TestClass("lizards")); Console.WriteLine("Enqueued object to queue...");
            queue.Enqueue(new TestClass("snakes")); Console.WriteLine("Enqueued object to queue...");

            Console.WriteLine($"\nQueue length = {queue.Count}\n");


            Console.WriteLine("Printing queue: ");
            foreach (var item in queue)          // foreach działa na kolejce dzięki temu,
                                                 // że ta dziedziczy z IEnumerable
            {
                Console.WriteLine("\t" + item.variable);
            }
            Console.WriteLine();

            TestClass testObject = queue.Dequeue(); Console.WriteLine($"Dequeued from queue... {testObject.variable}");

            // fukcja Dequeue() wyciąga z kolejki najwcześniej
            // zakolejkowany element jednocześnie usuwając go
            // z kolejki
            testObject = queue.Peek(); Console.WriteLine($"Peeked to queue... {testObject.variable}");
            // fukcja Peek() zwraca z kolejki najwcześniej
            // zakolejkowany element jednocześnie NIE usuwając go
            // z kolejki

            Console.WriteLine($"\nQueue length = {queue.Count}\n");


            Console.WriteLine("Printing queue: ");
            foreach (var item in queue)          // foreach działa na kolejce dzięki temu,
                                                 // że ta dziedziczy z IEnumerable
            {
                Console.WriteLine("\t" + item.variable);
            }
            Console.WriteLine();
        }
Beispiel #5
0
        static void PresentStack()
        {
            ColorText.WriteInColor(ConsoleColor.Cyan, "= Stack =\n"); // stos to kolekcja zdolna do przechwywania
                                                                      // danych z możliwością rozszerzeania się w przypadku takiej potrzeby
                                                                      // stos pozwala na wyłuskanie najpóźniej wepchanego
                                                                      // elementu -- nie można wybierać z niego elementu po indeksie

            Stack <TestClass> stack = new Stack <TestClass>();

            stack.Push(new TestClass("cats"));      Console.WriteLine("Pushed object on top of stack...");
            stack.Push(new TestClass("dogs"));      Console.WriteLine("Pushed object on top of stack...");
            stack.Push(new TestClass("lizards"));   Console.WriteLine("Pushed object on top of stack...");
            stack.Push(new TestClass("snakes"));    Console.WriteLine("Pushed object on top of stack...");

            Console.WriteLine($"\nStack length = {stack.Count}\n");

            Console.WriteLine("Printing stack: ");
            foreach (var item in stack)          // foreach działa na stosie dzięki temu,
                                                 // że ten dziedziczy z IEnumerable
            {
                Console.WriteLine("\t" + item.variable);
            }
            Console.WriteLine();


            TestClass testObject = stack.Pop(); Console.WriteLine($"Poped from stack... {testObject.variable}");

            // fukcja Pop() wyciąga ze stosu najpóźniej
            // wepchnięty element jednocześnie usuwając go
            // ze stosu
            testObject = stack.Peek(); Console.WriteLine($"Peeked to stack... {testObject.variable}");
            // fukcja Peek() wyciąga ze stosu najpóźniej
            // wepchnięty element jednocześnie NIE usuwając go
            // ze stosu

            Console.WriteLine($"\nStack length = {stack.Count}\n");


            Console.WriteLine("Printing stack: ");
            foreach (var item in stack)          // foreach działa na stosie dzięki temu,
                                                 // że ten dziedziczy z IEnumerable
            {
                Console.WriteLine("\t" + item.variable);
            }
            Console.WriteLine();
        }
Beispiel #6
0
        public static void Present(string path, ref int[] array, int index)
        {
            try {
                // W wypadku gdy ścieżka będzie nieodpowiednia
                // trzeba przechwycić wyjątek

                ReadFromFileIntoIntArray(path, ref array, index);
            } catch (FileNotFoundException ex) {
                // W wypadku gdy plik nie istnieje
                // dodatkowo wyświetl jego oczekiwaną lokalizacje

                ColorText.WriteError($"Przechwycono wyjątek: {ex.GetType()}");
                ColorText.WriteError($"Plik w lokacji {ex.FileName} nie istnieje!");
            } catch (Exception ex) {
                ColorText.WriteError($"Przechwycono wyjątek: {ex.GetType()}");
            }

            Console.WriteLine();
        }
Beispiel #7
0
        public static void PresentDictionary()
        {
            ColorText.WriteInColor(ConsoleColor.Cyan, "= Dictionary =\n");              // słownik jest kolekcją przyjmującą dwa
                                                                                        // argumenty -- przerwszy jest kluczem, a drugi wartością
                                                                                        // klucze muszą być unikatowe
                                                                                        // w razie potrzeby sam automatycznie się powiększa

            Dictionary <TestClass, int> dictionary = new Dictionary <TestClass, int>(); // w tym wypadku lista będzie posortowana
                                                                                        // na podstawie wartości TestClass.variable
            TestClass testObject = new TestClass("lizards");

            dictionary.Add(new TestClass("cats"), 5);    Console.WriteLine("Added KeyPairValue to dictionary...");
            dictionary.Add(new TestClass("dogs"), 9);    Console.WriteLine("Added KeyPairValue to dictionary...");
            dictionary.Add(testObject, 2); Console.WriteLine("Added KeyPairValue to dictionary...");
            dictionary.Add(new TestClass("snakes"), 4);  Console.WriteLine("Added KeyPairValue to dictionary...");

            Console.WriteLine($"\nDictionary length = {dictionary.Count}\n");

            Console.WriteLine("Printing dicionary: ");
            foreach (var item in dictionary)          // foreach działa na słowniku dzięki temu,
                                                      // że ten dziedziczy z IEnumerable
            {
                Console.WriteLine($"\t Key: {item.Key.variable} \t| Value {item.Value}");
            }

            dictionary.Add(new TestClass("goats"), 9);      Console.WriteLine("AddedKeyPairValue to dictionary...");
            // Wartości mogą się powtarzać w przeciwieństwie do kluczy


            dictionary.Add(new TestClass("cows"), 12); Console.WriteLine("AddedKeyPairValue to dictionary...");
            dictionary.Remove(testObject);                  Console.WriteLine("Removed KeyPairValue from dictionary...");

            Console.WriteLine($"\nDictionary length = {dictionary.Count}\n");

            Console.WriteLine("Printing dicionary: ");
            foreach (var item in dictionary)
            {
                Console.WriteLine($"\t Key: {item.Key.variable} \t| Value {item.Value}");
            }
        }
Beispiel #8
0
        public static void PresentSortedList()
        {
            ColorText.WriteInColor(ConsoleColor.Cyan, "= Sorted List =\n");           // posortowana lista jest kolekcją przyjmującą dwa
                                                                                      // argumenty -- przerwszy jest kluczem który musi
                                                                                      // dziedziczyć interfejsc ICompareable, to po nim owa lista
                                                                                      // automatycznie się sortuje po dodaniu/zmienieniu
                                                                                      // dowolniej wartości klucza

            SortedList <string, TestClass> SL = new SortedList <string, TestClass>(); // w tym wypadku lista będzie posortowana

            // na podstawie wartości TestClass.variable

            AddTestClassOjectToSortedList(new TestClass("cats"), SL); Console.WriteLine("Added object to sorted list");
            AddTestClassOjectToSortedList(new TestClass("dogs"), SL); Console.WriteLine("Added object to sorted list");
            AddTestClassOjectToSortedList(new TestClass("lizards"), SL); Console.WriteLine("Added object to sorted list");
            AddTestClassOjectToSortedList(new TestClass("snakes"), SL); Console.WriteLine("Added object to sorted list");

            Console.WriteLine($"\nSorted List length = {SL.Count}\n");

            Console.WriteLine("Printing list: ");
            foreach (var item in SL)          // foreach działa na posortowanej liście dzięki temu,
                                              // że ta dziedziczy z IEnumerable
            {
                Console.WriteLine($"\t{item.Key}");
            }

            SL.RemoveAt(3); Console.WriteLine("Removed object from sorted list with index 3");
            AddTestClassOjectToSortedList(new TestClass("goats"), SL); Console.WriteLine("Added object to sorted list");

            Console.WriteLine($"\nStack length = {SL.Count}\n");

            Console.WriteLine("Printing list: ");
            foreach (var item in SL)
            {
                Console.WriteLine($"\t{item.Key}");
            }

            // Pomimo zmian w liście ta nadal będzie posortowana względem klucza
        }