Wprowadzenie do platformy Java i programowanie w języku Java
Wprowadzenie Do C# i Platformy
-
Upload
devcastzone -
Category
Documents
-
view
159 -
download
0
description
Transcript of Wprowadzenie Do C# i Platformy
Wprowadzenie do C# i platformy .NETMateriay pochodz ze strony: Kliknij, aby edytowa styl wzorca podtytuu www.devcastzone.com
copyright BNS MEDIA
www.devcastzone.co
Wyjtki i kolekcjeWprowadzenie do C# i platformy .NET Kliknij, aby edytowa styl wzorca podtytuu
copyright BNS MEDIA
www.devcastzone.co
Spis treci1.
Wyjtkia) b) c)
Hierarchia wyjtkw Wyrzucanie wyjtkw Przechwytywanie wyjtkw
d) e)
Przydatne metody klasy Throwable Tworzenie wyjtkw
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
33
Spis treci2.
Kolekcjea) b) c) d) e)
Implementacja kolekcji w C# Tablice a kolekcje Uproszczona hierarchia kolekcji Podstawowe operacje na kolekcjach Typy generyczne
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
44
Wyjtki
Obiekty (tworzone przy pomocy operatora new) i wyrzucane z biecego kontekstu Obsuga wyjtkw pozostaje w gestii programisty i nie jest wymuszana przez kompilator
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
55
Bdy vs wyjtki
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
66
Hierarchia wyjtkw
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
77
Klasa Exception
Dziedziczy po System.Object i stanowi klas bazow dla wszystkich wyjtkw Stanowi baz dla dwch gwnych gazi hierarchii wyjtkw dziedziczcych z SystemException predefiniowane wyjtki typu runtime oraz ApplicationException dedykowana do budowania wasnych typw wyjtkwWprowadzenie do C# i www.devcastzone.co 88
copyright BNS MEDIA
Klasa Exception
StackTrace - stos wywoa, lad miejsca skd nastpio wyrzucenie wyjtku InnerException - enkapsulowany wyjtek zawierajcy szczegy niszej warstwy Message komunikat tekstowy zawierajcy szczegy wyjtku
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
99
Klasa Exception
HelpLink URN (unified resource name) lub URL (unified resource locator) do pliku opisujcego/zwizanego z wyjtkiem HResult warto liczbowa kod bdu zwizanego z wyjtkiem Source nazwa aplikacji lub obiektu, ktry wywoa bd TargetSite pozwala pobra nazw metody w ktrej wystpio wyrzucenie wyjtku Wprowadzenie do C# i 1010www.devcastzone.co
copyright BNS MEDIA
Wyrzucanie wyjtkw
Przy pomocy sowa kluczowego throw
Powoduje przerwanie wykonywania danej metody
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
1111
Wyrzucanie wyjtkw jest kluczowym mechanizmem obsugi bdw w MS .NET Framework przykady operacje I/O, indeksowania tablic, obliczenia, dostp do danych, zarzdzanie pamici, uprawnieniami itd. Framework jest wyposaony w globalny mechanizm rejestrowania nieobsuonych wyjtkw AppDomain.CurrentDomain.UnhandledExc eption Wprowadzenie do C# i 1212www.devcastzone.co
copyright BNS MEDIA
Przykad uycia wyjtkwpublic static double ObliczPierwiastek(double liczba) { if (liczba < 0) { throw new ArithmeticException( "Nie mona pierwiastkowa liczby ujemnej"); } return Math.Sqrt(liczba); }
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
1313
Przechwytywanie wyjtkw
Gdy nie chcemy, eby
wystpienie wyjtku powodowao wyjcie z metody
Blok try-catch W chwili wejcia do sekcji catch, wyjtek jest uwaany za obsuony Naley unika przechwytywania wyjtkw, jeli nie wiadomo, co z nimi zrobiWprowadzenie do C# i www.devcastzone.co 1414
copyright BNS MEDIA
Zasady przechwytywania Osobne procedury obsugi dla kadego wyjtkw
typu wyjtku
Kolejno procedur powinna zaczyna si od najbardziej szczegowych, najoglniejsza na kocu W przeciwnym wypadku pozostae wyjtki zostan pominite Nigdy nie naley poyka wyjtkwWprowadzenie do C# i www.devcastzone.co
copyright BNS MEDIA
1515
public static void Main() { try { Console.WriteLine(ObliczPierwiastek(4)); Console.WriteLine(ObliczPierwiastek(-2)); } catch (ArithmeticException ae) { Console.WriteLine("Bd: " + ae.Message); } } public static double ObliczPierwiastek(double liczba) { if (liczba < 0) { throw new ArithmeticException( "Nie mona pierwiastkowa liczby ujemnej"); } return Math.Sqrt(liczba); }
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
1616
try-catch-finally
Kod w sekcji finally wykonywany zawsze (chyba e nastpi przerwanie wykonywania aplikacji), niezalenie od tego, czy wyjtek zostanie zgoszony, czy nie Suy do umieszczania procedur takich jak czyszczenie ekranu, zamykanie plikw, pocze sieciowychWprowadzenie do C# i www.devcastzone.co 1717
copyright BNS MEDIA
OtworzMojPlik(); try { } catch (IOException ioe) { Console.WriteLine("Bd: " + ioe.StackTrace); } finally { ZamknijMojPlik(); // plik zawsze zostanie zamknity } ZapiszMojPlik(nazwaPliku);
Jeli aden zblokw catch nie wychwyci wyjtku, tojest on propagowany na zewntrz instrukcjitry-catch-finally (itam powinien by obsuony).Wprowadzenie do C# i www.devcastzone.co
copyright BNS MEDIA
1818
Uwagi do wyjtkw
NazwaKlasyWyjatkuException W bloku catch typowo wyjtek nazywa si skrtem pierwszych liter np.: FileNotFoundException fnfe Wychwytywanie wyjtkw naley przeprowadza od klas najbardziej szczegowych do oglnychWprowadzenie do C# i www.devcastzone.co 1919
copyright BNS MEDIA
Konstruktory wyjtkwWe wszystkich standardowych typach wyjtkw istniej 3 publiczne konstruktory bezparametrowy przyjmujcy parametr typu string przyjmujcy dwa parametr typu string i Exception Wprowadzenie do C# i 2020www.devcastzone.co
copyright BNS MEDIA
Tworzenie wyjtkw
Zwykle nowe wyjtki dziedzicz po istniejcej ju klasie wyjtkwclass MyException : Exception{}
Naley definiowa zestaw domylnych konstruktorw Nazwa okrela zastosowanie i zwykle wystarcza do wyjanienia rda bdu
FileNotFoundException NullPointerException DivideByZeroExceptioncopyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
2121
Tworzenie wyjtkw w VisualStudio
Tworzymy now klas np. DemoException Korzystamy z trzyliterowego snippetu exc Zmieniamy nazw tworzonej klasy wyjtku na nasz (DemoException )
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
2222
Kolekcje
Przestrze nazw System.Collections Klasy obiektw sucych do przechowywania innych obiektw udostpniajce mechanizmy pozwalajce na ich wstawianie, przegldanie i pobieranie Kolekcje s bezpieczne ze wzgldu na typ Daj programicie moliwo przetwarzania grup obiektw Wprowadzenie do C# iwww.devcastzone.co
copyright BNS MEDIA
2323
Implementacja kolekcji w .NET
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
2424
Tablice vs Kolekcje
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
2525
Dynamiczny rozmiar w kolekcjach// stay rozmiar tablicy string [] imiona = new string[10]; // allokacja pocztkowa System.Collections.Generic.List numeryTelefonow = new System.Collections.Generic.List(10);
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
2626
Kolekcje oglne i kolekcje generyczne
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
2727
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
2828
http://www.programcreek.com/wp-content/uploads/2009/02/java-collection.jpg
Wierzchoek hierarchii interfejsw kolekcji generycznych
Interfejs ICollection
Podstawa kolekcji generycznych Pozostae interfejsy s ich rozszerzeniami Oferuje kluczow funkcjonalno w zakresie dostpu i modyfikacji zbioru obiektw
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
2929
Interfejs IList
Definiuje indeksowalne odwoania do zbioru elementw analogia do tablicy
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
3030
Klasa List
Zastpuje tablic Zestaw kilkunastu metod intuicyjny przetwarzanie danych Pozwala przeszukiwa, sortowa, i modyfikowa kolekcj
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
3131
Kluczowe metody List
Add dodanie elementu AddRange dodanie kolekcji Find wyszukiwanie elementu GetRange dynamiczne pobranie fragmentu listy Sort sortowanie ToArray dynamiczne utworzenie tablicyWprowadzenie do C# i www.devcastzone.co 3232
copyright BNS MEDIA
Klasa LinkedList
Lista podwjnie czona implementujca interfejsy kolekcji Kady element ma okrelon pozycj i posiada referencj do nastpnika i poprzednika Elementy uoone w kolejnoci, w jakiej byy dodawaneWprowadzenie do C# i www.devcastzone.co 3333
copyright BNS MEDIA
Klasa LinkedList
Rne elementy mog zawiera te same dane Zawiera metody zwizane z obsug list
AddFirst, AddLast, AddAfter, AddBefore RemoveFirst(), RemoveLast(), Find, FindLast, Remove, Clear, First, Last
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
3434
Klasa Stack
Stos obiektw LIFO Minimalny zestaw operacji Zabezpiecza waciw kolejno dostpu do danych
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
3535
Klasa Queue
Kolejka FIFO First In, First Out Minimalny zestaw operacji Zabezpiecza waciw kolejno dostpu do danych
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
3636
Interfejs IDictionary
Kolekcja zawiera wartoci powizane z kluczami Klucze musz by unikalne Iteracja - KeyValuePairIDictionary uczniowie = new Dictionary(); uczniowie.Add(1, "Adamski"); uczniowie.Add(2, "Cebulak"); uczniowie.Add(3, "Dbrowski"); Console.WriteLine(uczniowie[1]);
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
3737
Interfejs IDictionary
Wartoci mog si powtarza Zazwyczaj klucz jest prosty, warto zoona atwe dodawanie elementw i wyszukiwanie Sowniki wykorzystuj mechanizm hashowania dlatego uywanie kluczy referencyjnych z modyfikatorem mutable moe by niebezpieczneWprowadzenie do C# i www.devcastzone.co 3838
copyright BNS MEDIA
Implementacje IDictionary
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
3939
Klasa HashSetHashSet miasta = new HashSet(); miasta.Add("Warszawa"); miasta.Add("Marsylia"); miasta.Add("Londyn"); miasta.Add("Marsylia"); foreach (string s in miasta) { Console.WriteLine(s); }
Po uruchomieniu wywietli si [Warszawa, Marsylia, Londyn]copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
4040
Klasa HashSet
Tablica z kodowaniem mieszanym bardzo wydajna w zakresie prdkoci dostpu do danych Elementy nie mog si powtarza i nie maj okrelonej pozycji Porzdek elementw nie zaley od kolejnoci dodawaniaWprowadzenie do C# i www.devcastzone.co 4141
copyright BNS MEDIA
Klasa HashSet
Istnieje funkcja, ktra kademu elementowi przypisuje jego indeks, dziki czemu operacje zajmuj zwykle stay czas, nawet dla duych tablic
Kluczowe metody to GetEnumerator, Add, Clear, IntersectWith, ExceptWithWprowadzenie do C# i www.devcastzone.co 4242
copyright BNS MEDIA
Interfejs IEnumerator
Kada kolekcja produkuje swj wasny obiekt o interfejsie IEnumerator Zawiera metody i waciwoci:
bool MoveNext() przemieszcza wskanik iteracji do nastpnego elementu zwraca true jeli takowy istnieje Current waciwo pozwalajca na dostp do biecego elementu
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
4343
Posugiwanie si IEnumeratorHashSet.Enumerator enumerator = miasta.GetEnumerator(); while (enumerator.MoveNext()) { string biezacyElement = enumerator.Current; Console.WriteLine(biezacyElement); }
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
4444
foreach w kolekcjach
Ptla iteracyjna (w innych jzykach foreach) Umoliwia przejrzenie wszystkich elementw kolekcji Moe by stosowana z tablicami (patrz: params) i wszystkim klasami implementujcymi interfejsIEnumerable
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
4545
foreachforeach (string s in miasta) { Console.WriteLine(s); }
zastpuje nastpujcy kodHashSet.Enumerator enumerator = miasta.GetEnumerator(); while (enumerator.MoveNext()) { Console.WriteLine(enumerator.Current); }
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
4646
Array.ForEachforeach (string s in miasta) { JakasMetoda(s); }
Poczwszy od .NET 4.0 do dyspozycji foreach (string s in miasta) mamy skadni: {Array.ForEach(s, JakasMetoda); }
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
4747
Podstawowe operacje na kolekcjachW ramach interfejsu ICollection int Count - zwraca liczb elementw bool Contains(T item) - sprawdza, czy kolekcja zawiera dany element void Add(T item) - dodaje element do kolekcji bool Remove(T item) - usuwa element z kolekcjicopyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
4848
Interfejs IComparable
Wszystkie kolekcje zawieraj metod void Sort() Warunkiem poprawnego dziaania sortowania jest to, aby obiekty w kolekcji speniay interfejs IComparable
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
4949
Metoda CompareTo
Metoda CompareTo(Object o) powinna zwraca:o
o
o
< 0 gdy parametr jest wikszy ni obiekt wywoujcy 0 gdy parametr jest rwny obiektowi wywoujcemu > 0 gdy parametr jest mniejszy ni obiekt wywoujcy
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
5050
Sortowanie kolekcji cd.
Sortowanie dla typw prostych jest zdefiniowane w sposb naturalny Chcc uzyska oczekiwane sortowanie dla zdefiniowanej przez siebie klasy naley:- zaimplementowa interfejs IComparable lub
- zbudowa odrbn klas implementujc interfejs IComparer
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
5151
Implementacja IComparable w obiekcie kolekcjipublic class Pracownik : IComparable { private int idPracownika; public int IDPracownika { get { return idPracownika;} } public int CompareTo(Object obj) { int id = ((Pracownik) obj).IDPracownika; return (this.idPracownika.CompareTo(id)); }
}
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
5252
Implementacja IComparable w obiekcie kolekcji interfejs generycznypublic class Pracownik : IComparable { private int idPracownika; public int IDPracownika { get { return idPracownika;} } public int CompareTo(Pracownik p) { int id = p.IDPracownika; return this.idPracownika.CompareTo(id); }
}
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
5353
Interfejs IComparer
Sortowanie jest moliwe dla dowolnych obiektw Zawiera metod int Compare(T elem1, T elem2)o
okrelajc porzdek na obiektach i zwracajc 0, gdy obiekty s sobie rwne oraz 1, gdy pierwszy jest wikszy -1 w przeciwnym razie o W .NET mona odnale rwnie interfejs IComparer bez kontroli typwWprowadzenie do C# i www.devcastzone.co
copyright BNS MEDIA
5454
public class PorownywaczPracownikow : IComparer { public int Compare(Pracownik p1, Pracownik p2) { int id1 = p1.IDPracownika; int id2 = p2.IDPracownika; return id1.CompareTo(id2); } }
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
5555
Polimorfizm w kolekcjach
Polimorfizm parametryczny typ obiektu nie musi by ustalany w trakcie kompilacji. Moemy tworzy abstrakcyjne programy majce w parametrze nieokrelon z gry kolekcj w zalenoci od tego, jak kolekcj otrzymaj, bd inaczej dziaa.
copyright BNS MEDIA
Wprowadzenie do C# i www.devcastzone.co
5656
Wprowadzenie do C# i platformy .NET program penego szkolenia1.
MS .NET Framework i MS Visual Studioo o
Przegld architektury .NET Przegld rodowiska programistycznego MS Visual Studio .NET 2008 Skadowe jzyka C# Typy w C# Klasa String Nazewnictwo Tworzenie aplikacji z uyciemwww.devcastzone.co
2.
Podstawowe elementy jzyka C#o o o
copyright BNS MEDIA
o
5757
Wprowadzenie do C# i platformy .NET program penego szkolenia3.
Wstp do obiektowocio o o o o o o
Programowanie obiektowe Czym jest obiekt? Pojcie klasy Wicej o metodach Konstruktor Sowo kluczowe new Klasa gwna projektu Referencja Tworzenie aplikacji z uyciemwww.devcastzone.co
copyright BNS MEDIA
o
5858
Wprowadzenie do C# i platformy .NET program penego szkolenia5.
Wyjtki i kolekcjeo
Wyjtki
Hierarchia wyjtkw Wyrzucanie wyjtkw Przechwytywanie wyjtkw Przydatne metody klasy Throwable Tworzenie wyjtkw
o
Kolekcje
Implementacja kolekcji w C# Tablice a kolekcjeTworzeniewww.devcastzone.co uyciem aplikacji z 5959
copyright BNS MEDIA
Wprowadzenie do C# i platformy .NET program penego szkolenia7.
Strumienieo o o o o
Informacja o napdach, katalogach i plikach Obsuga operacji wejcia-wyjcia Filtrowanie danych Serializacja danych Klasa formatujce tekst
7.
Komunikacja z baz danycho
Relacyjne bazy danychTworzenie aplikacji z u Wprowadzenie do ADO.NETyciemwww.devcastzone.co
copyright BNS MEDIA
o
6060
Wprowadzenie do C# i platformy .NET program penego szkolenia9.
Interfejs uytkownikaPierwszy formularz
o o o o o o ocopyright BNS MEDIA
Tworzenie projektu WinForms w MS Visual Studio Ustawianie waciwoci formularzy Umieszczanie kontrolek na formularzach Obsuga zdarzenia Load Obsuga nacinicia przycisku Kotwiczenie i dokowanie kontrolekTworzenie aplikacji z uyciem MessageBoxwww.devcastzone.co
o
6161
Wprowadzenie do C# i platformy .NET http:// www.devcastzone.com/course,wprowadzenie-do-c-i-platfo
Zapraszamy
copyright BNS MEDIA
Tworzeniewww.devcastzone.co uyciem aplikacji z
6262