Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Zestaw pytań nr. 3 Typy generyczne Wyjątki OPRACOWALI: JAKUB GRYCZEWSKIKINGA ROSA DANIEL KAPTEJNYWOJCIECH ŁĘCZYCKI 2015-06-03 1.

Podobne prezentacje


Prezentacja na temat: "Zestaw pytań nr. 3 Typy generyczne Wyjątki OPRACOWALI: JAKUB GRYCZEWSKIKINGA ROSA DANIEL KAPTEJNYWOJCIECH ŁĘCZYCKI 2015-06-03 1."— Zapis prezentacji:

1 Zestaw pytań nr. 3 Typy generyczne Wyjątki OPRACOWALI: JAKUB GRYCZEWSKIKINGA ROSA DANIEL KAPTEJNYWOJCIECH ŁĘCZYCKI

2 1. Co to jest klasa System.Object i jakie posiada składowe? Klasa Object definiuje zbiór składowych wspólny dla wszystkich języków platformy.NET. Jest to klasa nadrzędna, jeżeli zdefiniujemy klasę nie podając jawnie jej klasy bazowej, kompilator automatycznie traktuje ją jako pochodną klasy Object. Składowe klasy System.Object:  Metoda wirtualna Equals(object o)  Domyślnie zwraca wartość true gdy porównywane elementy odnoszą się do tego samego miejsca w pamięci (czy odnoszą się do tej samej instancji klasy)  Zazwyczaj jest przesłaniania tak, aby zwracała wartość true, gdy porównywane elementy mają takie same wartości stanów  Metoda wirtualna GetHashCode()  Zwraca wartość int, która identyfikuje daną instancje klasy Object  Metoda GetType()  Zwraca obiekt klasy Type, który szczegółowo opisuje wskazany obiekt

3 1. Co to jest klasa System.Object i jakie posiada składowe?  Metoda wirtualna Finalize()  Wykonywana w celu zwolnienia wszystkich zaalokowanych zasobów przed zniszczeniem obiektu  Metoda wirtualna ToString()  Zwraca wartość typu string reprezentującą dany obiekt (domyślnie zwraca przestrzeń_nazw.nazwa_typu)  Zazwyczaj jest przesłaniana przez klasy pochodne, które zwracają w ten sposób łańcuch znaków opisujących ten obiekt  Metoda MemberwiseClone()  Zwraca klon obiektu (kopiowana jest każda jego składowa)  Metoda statyczna Equals(object oA, object oB)  Służy do porównywania stanów obiektów  Metoda statyczna ReferenceEquals(object oA, object oB)  Służy do porównywania referencji

4 2. Co to są wyjątki? Wyjątek to zbiór informacji o błędzie. Wyjątek reprezentowany jest przez klasę System.Exception (lub klasę dziedziczącą po niej) Wiele właściwości jest tylko do odczytu. Podczas tworzenia klas pochodnych wielu z tych właściwości nadawane są wartości domyślne. Składowe klasy System.Exception:  Właściwość Data  Kolekcja par kluczy i wartości, która dostarcza dodatkowe (zdefiniowane przez programistę) informację o błędzie. Domyślnie jest pusta

5 2. Co to są wyjątki?  Właściwość HelpLink  Zawiera link do pliku z pomocą  Właściwość InnerException  Przechowuje informacje o wyjątkach które wystąpiły podczas obsługi danego wyjątku. Tylko do odczytu, ustawiana jako parametr konstruktora  Właściwość Message  Zawiera opis zainstaniałego błędu. Tylko do odczytu, ustawiana jako parametr konstruktora  Właściwość Source  Zawiera nazwę pakietu który zgłosił dany wyjątek

6 2. Co to są wyjątki?  Właściwość StackTrace  Zawiera opis sekwencji wywołań które spowodowały dany wyjątek. Tylko do odczytu  Właściwość TargetSite  Zawiera obiekt typu MethodBase, który zawiera szczegółowe informacje dotyczące metody która dany wyjątek wyrzuciła

7 3. Na czym polega obsługa wyjątków Z obsługą wyjątków wiąże się z wykorzystaniem czterech elementów:  Klasy która zawiera informację o wyjątku  Składowej która wyrzuca instancję danej klasy wyjątku do wywołującego  Newralgicznego bloku kody po stronie wywołującego w którym może zostać wyrzucony wyjątek  Bloku kodu po stronie wywołującego który przechwyci i obsłuży wyjątek

8 4. Jakie są bloki i słowa kluczowe związane z obsługą wyjątków? Język C# posiada cztery słowa kluczowe związane z obsługą wyjątków:  try  Blok try jest sekcją kodu, w którym może nastąpić wyrzucenie wyjątku  catch  Jeżeli wyjątek zostanie wykryty, sterowanie zostaje przeniesione do odpowiedniego bloku catch  Jeżeli w bloku try nie wystąpił żaden wyjątek, blok catch zostaje pominięty  finally  Blok finally jest wywoływany zawsze, nie zależnie czy wystąpił wyjątek czy nie  throw  Za pomocą słowa kluczowego throw jest zgłaszany wyjątek  W konstruktorze podawana jest wiadomość nt. błędu

9 4. Jakie są bloki i słowa kluczowe związane z obsługą wyjątków?

10 5. Jak realizujemy przechwytywanie wielu wyjątków? Przechwytywanie wielu wyjątków możemy zrealizować za pomocą kolejnych bloków catch. Należy je definiować od najbardziej specjalizowanych do najbardziej ogólnych wyjątków. W przeciwnym razie kolejne bloki mogą zostać nieosiągalne

11 6. Co to jest typ generyczny? W.NET 2.0 Microsoft wprowadził nowe typy danych – typy generyczne. Do tej pory wszystkie elementy były przechowywane w kolekcjach jako obiekty klasy object. Obecnie mamy dostępną nową przestrzeń nazw System.Collections.Generic, w której znajdują się klasy umożliwiające deklarowanie jakiego typu elementy mają znajdować się w danej kolekcji (podobnie jak ma to miejsce w tablicach). Główną zaletą jest przyspieszenie działania kolekcji. Podczas dodawania elementu nie jest on rzutowany na typ object (chyba że tego chcemy), a podczas pobierania elementu z kolekcji nie musimy z powrotem rzutować go na odpowiedni typ. Uniknięcie tych operacji przyspiesza znacznie działanie naszego programu. Następną zaletą korzystania z typów generycznych jest unikanie wielu błędów już na etapie kompilacji. Używając np. ArrayListy możemy dodawać do niej obiekty różnych typów i kompilator nie uzna tego za błąd. Podczas wykonania może dojść do sytuacji, że pobierając elementy z listy i rzutując je na ten sam typ, może powstać błąd wykonania, ponieważ wcześniej dodaliśmy do listy element innego typu. Natomiast jeśli użyjemy List (generyczny odpowiednik ArrayListy) i zadeklarujemy jakiego typu elementy ma ona przechowywać, już na etapie kompilacji wskazany zostanie błąd podczas dodawania elementu o nieodpowiednim typie. Deklarowanie kolekcji generycznej wygląda następująco:

12 7. Na czym polega o/wypakowywanie i gdzie jest wykorzystywane? Opakowywanie można formalnie zdefiniować, jako jawną konwersję typu wartościowego na odpowiadający mu typ referencyjny poprzez zapisanie zmiennej w typie System.Object. Kiedy opakowujemy wartość, CLR alokuje nowy obiekt na stercie i kopiuje wartość typu wartościowego ( w tym przypadku 25) do tej instancji. Zwracana jest referencja do tego nowo zaalokowanego obiektu

13 7. Na czym polega o/wypakowywanie i gdzie jest wykorzystywane? Wypakowywanie to proces konwersji wartości przechowywanej w referencji do obiektu odpowiedniego typu wartościowego. Wypakowywanie rozpoczyna się od weryfikacji, czy „odbierający” typ danych jest równoważny z opakowanym typem. Wypakowywanie do nieodpowiedniego typu danych powoduje wyrzucenie wyjątku InvalidCastException. Mechanizm ten, mimo że wydawać się może rzadko stosowany, jest bardzo pomocny. Pozwala on na przyjęcie założenia, że wszystko może być traktowane jako obiekty klasy System.Object, podczas gdy CLR zajmuje się wszystkimi operacjami związanymi z zarządzaniem pamięcią

14 8. Wymień znany Ci kolekcje generyczne Collection (odpowiednik CollectionBase) – stanowi bazę dla kolekcji generycznych, Comparer (odpowiednik Comparer) – porównuje dwa obiekty generyczne, Dictionary (odpowiednik Hashtable – generyczna kolekcja par nazwa/wartość, List (odpowiednik ArrayList) – dynamiczna dostosowująca swój rozmiar lista elementów, LinkedList - generyczna implementacja podwójnie powiązanej listy, Queue (odpowiednik Queue) – generyczna implementacja kolejki FIFO, Stack (odpowiednik Stack) – generyczna implementacja kolejki LIFO, SortedDictionary (odpowiednik SortedList) – dynamiczna implementacja posortowanego zbioru par nazwa/wartość, ReadOnlyCollection (odpowiednik ReadOnlyCollectionBase) – generyczna implementacja zbioru elementów tylko do odczytu

15 9. Co to są indeksery? Indekser pozwala indeksować instancje danej klasy lub struktury tak jak tablice. Indeksery są podobne do właściwości klasy, z tą różnicą że ich metody dostępowe mogą przyjmować parametry. Składnia indeksera wygląda następująco:

16 Dziękujemy za uwagę


Pobierz ppt "Zestaw pytań nr. 3 Typy generyczne Wyjątki OPRACOWALI: JAKUB GRYCZEWSKIKINGA ROSA DANIEL KAPTEJNYWOJCIECH ŁĘCZYCKI 2015-06-03 1."

Podobne prezentacje


Reklamy Google