C# 6.0. Kompletny przewodnik dla praktyków. Wydanie V - ebook
C# 6.0. Kompletny przewodnik dla praktyków. Wydanie V - ebook
C# jest prostym, nowoczesnym, bezpiecznym językiem programowania, który powstał na bazie języków C i C++, jednak otrzymał też najlepsze cechy takich języków jak Visual Basic, Object Pascal, Delphi czy Java. Został od podstaw zaprojektowany jako obiektowy. C# stanowi część platformy Microsoft .NET Framework. Ta dojrzała technologia pozwala na efektywne tworzenie kodu bezpiecznego, przejrzystego, wydajnego i prostego w konserwacji.
Niniejsza książka to bardzo praktyczne kompendium wiedzy o języku C#. Została oparta na podstawowej specyfikacji C# Language 6.0. Zawiera kompletne omówienie języka. Książkę pomyślano jako podręcznik, dzięki któremu szybko można rozpocząć praktyczną pracę nad projektami programistycznymi. Osoby znające C# będą mogły zapoznać się ze skomplikowanymi paradygmatami programowania, a także przejrzeć szczegółowe omówienie funkcji wprowadzonych w najnowszej wersji języka, C# 6.0, oraz w platformie .NET Framework 4.6. Ponadto każdy, kto pracuje w C#, znajdzie tu doskonale zorganizowane źródło wiedzy o tym potężnym języku.
W tej książce przedstawiono:
- kompletne omówienie elementów języka C#,
- jasne wskazówki dotyczące implementowania niezawodnej obsługi błędów,
- metody zmniejszania złożoności kodu,
- zasady programowania dynamicznego z wykorzystaniem refleksji i atrybutów,
- wykorzystywanie możliwości platformy .NET, w tym omówienie kolekcji i standardu CLI,
- powiązania kodu C# z wykorzystywanym środowiskiem uruchomieniowym.
Sprawdź, jak wygodnym i niezawodnym językiem jest C#!
Spis treści
Spis rysunków (11)
Spis tabel (13)
Przedmowa (15)
Wprowadzenie (17)
Podziękowania (27)
O autorach (29)
1. Wprowadzenie do języka C# (31)
- Witaj, świecie (32)
- Podstawy składni języka C# (33)
- Dane wejściowe i wyjściowe w konsoli (44)
2. Typy danych (59)
- Podstawowe typy liczbowe (59)
- Inne podstawowe typy (67)
- Wartości null i void (78)
- Kategorie typów (81)
- Modyfikator umożliwiający stosowanie wartości null (83)
- Konwersje typów danych (84)
- Tablice (89)
3. Operatory i przepływ sterowania (105)
- Operatory (106)
- Zarządzanie przepływem sterowania (119)
- Bloki kodu ({}) (124)
- Bloki kodu, zasięgi i przestrzenie deklaracji (126)
- Wyrażenia logiczne (127)
- Operatory bitowe (<<, >>, |, &, ^, ~) (135)
- Instrukcje związane z przepływem sterowania - ciąg dalszy (140)
- Instrukcje skoku (150)
- Dyrektywy preprocesora języka C# (156)
4. Metody i parametry (165)
- Wywoływanie metody (166)
- Deklarowanie metody (172)
- Dyrektywa using (176)
- Zwracane wartości i parametry metody Main() (181)
- Zaawansowane parametry metod (183)
- Rekurencja (190)
- Przeciążanie metod (193)
- Parametry opcjonalne (195)
- Podstawowa obsługa błędów z wykorzystaniem wyjątków (199)
5. Klasy (213)
- Deklarowanie klasy i tworzenie jej instancji (216)
- Pola instancji (218)
- Metody instancji (221)
- Stosowanie słowa kluczowego this (222)
- Modyfikatory dostępu (228)
- Właściwości (230)
- Konstruktory (244)
- Składowe statyczne (253)
- Metody rozszerzające (262)
- Hermetyzacja danych (263)
- Klasy zagnieżdżone (266)
- Klasy częściowe (268)
6. Dziedziczenie (273)
- Tworzenie klas pochodnych (274)
- Przesłanianie składowych z klas bazowych (284)
- Klasy abstrakcyjne (294)
- Wszystkie klasy są pochodne od System.Object (299)
- Sprawdzanie typu za pomocą operatora is (301)
- Konwersja z wykorzystaniem operatora as (301)
7. Interfejsy (303)
- Wprowadzenie do interfejsów (304)
- Polimorfizm oparty na interfejsach (305)
- Implementacja interfejsu (309)
- Przekształcanie między klasą z implementacją i interfejsami (314)
- Dziedziczenie interfejsów (315)
- Dziedziczenie po wielu interfejsach (317)
- Metody rozszerzające i interfejsy (317)
- Implementowanie wielodziedziczenia za pomocą interfejsów (319)
- Zarządzanie wersjami (321)
- Interfejsy a klasy (323)
- Interfejsy a atrybuty (324)
8. Typy bezpośrednie (327)
- Struktury (331)
- Opakowywanie (336)
- Wyliczenia (343)
9. Dobrze uformowane typy (355)
- Przesłanianie składowych z klasy object (355)
- Przeciążanie operatorów (365)
- Wskazywanie innych podzespołów (373)
- Definiowanie przestrzeni nazw (377)
- Komentarze XML-owe (381)
- Odzyskiwanie pamięci (385)
- Porządkowanie zasobów (387)
- Leniwe inicjowanie (394)
10. Obsługa wyjątków (397)
- Wiele typów wyjątków (397)
- Przechwytywanie wyjątków (400)
- Ogólny blok catch (403)
- Wskazówki związane z obsługą wyjątków (405)
- Definiowanie niestandardowych wyjątków (407)
- Ponowne zgłaszanie opakowanego wyjątku (411)
11. Typy generyczne (415)
- Język C# bez typów generycznych (416)
- Wprowadzenie do typów generycznych (420)
- Ograniczenia (430)
- Metody generyczne (442)
- Kowariancja i kontrawariancja (446)
- Wewnętrzne mechanizmy typów generycznych (452)
12. Delegaty i wyrażenia lambda (457)
- Wprowadzenie do delegatów (458)
- Wyrażenia lambda (466)
- Metody anonimowe (471)
- Delegaty ogólnego przeznaczenia - System.Func i System.Action (473)
13. Zdarzenia (489)
- Implementacja wzorca "obserwator" za pomocą delegatów typu multicast (490)
- Zdarzenia (503)
14. Interfejsy kolekcji ze standardowymi operatorami kwerend (513)
- Typy anonimowe i zmienne lokalne o niejawnie określanym typie (514)
- Inicjatory kolekcji (519)
- Interfejs IEnumerable sprawia, że klasa staje się kolekcją (522)
- Standardowe operatory kwerend (527)
15. Technologia LINQ i wyrażenia z kwerendami (557)
- Wprowadzenie do wyrażeń z kwerendami (558)
- Wyrażenia z kwerendą to tylko wywołania metod (573)
16. Tworzenie niestandardowych kolekcji (577)
- Inne interfejsy implementowane w kolekcjach (578)
- Podstawowe klasy kolekcji (580)
- Udostępnianie indeksera (594)
- Zwracanie wartości null lub pustej kolekcji (598)
- Iteratory (598)
17. Refleksja, atrybuty i programowanie dynamiczne (613)
- Mechanizm refleksji (614)
- Operator nameof (623)
- Atrybuty (624)
- Programowanie z wykorzystaniem obiektów dynamicznych (644)
18. Wielowątkowość (655)
- Podstawy wielowątkowości (657)
- Używanie klasy System.Threading (663)
- Zadania asynchroniczne (670)
- Anulowanie zadania (686)
- Wzorzec obsługi asynchroniczności za pomocą zadań (692)
- Równoległe wykonywanie iteracji pętli (713)
- Równoległe wykonywanie kwerend LINQ (721)
19. Synchronizowanie wątków (727)
- Po co stosować synchronizację? (728)
- Zegary (752)
20. Współdziałanie między platformami i niezabezpieczony kod (755)
- Mechanizm P/Invoke (756)
- Wskaźniki i adresy (766)
- Wykonywanie niezabezpieczonego kodu za pomocą delegata (775)
- Używanie bibliotek Windows Runtime w języku C# (776)
21. Standard CLI (781)
- Definiowanie standardu CLI (782)
- Implementacje standardu CLI (783)
- Kompilacja kodu w języku C# na kod maszynowy (784)
- Środowisko uruchomieniowe (786)
- Domeny aplikacji (790)
- Podzespoły, manifesty i moduły (790)
- Język Common Intermediate Language (792)
- Common Type System (793)
- Common Language Specification (794)
- Base Class Library (794)
- Metadane (794)
A. Pobieranie i instalowanie kompilatora języka C# oraz platformy CLI (799)
- Platforma .NET dla systemu Windows (799)
- Platforma .NET w systemach OS X i Linux (801)
B. Kod źródłowy programu do gry w kółko i krzyżyk (803)
C. Wielowątkowość bez biblioteki TPL i przed wersją C# 6.0 (809)
- Wzorzec APM (810)
- Asynchroniczne wywoływanie delegatów (821)
- Wzorzec EAP - asynchroniczność oparta na zdarzeniach (824)
- Wzorzec wykorzystujący roboczy wątek działający w tle (827)
- Kierowanie wywołań do interfejsu użytkownika w systemie Windows (830)
D. Zegary przed wprowadzeniem w wersji C# 5.0 słów kluczowych async i await (835)
Skorowidz (841)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-2519-7 |
Rozmiar pliku: | 6,0 MB |