E-book details

C# 6.0. Kompletny przewodnik dla praktyków. Wydanie V

C# 6.0. Kompletny przewodnik dla praktyków. Wydanie V

Mark Michaelis, Eric Lippert

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 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)

  • Title: C# 6.0. Kompletny przewodnik dla praktyków. Wydanie V
  • Author: Mark Michaelis, Eric Lippert
  • Original title: Essential C# 6.0 (5th Edition)
  • Translation: Tomasz Walczak
  • ISBN: 978-83-283-2519-7, 9788328325197
  • Date of issue: 2016-08-26
  • Format: Ebook
  • Item ID: ch6kpp
  • Publisher: Helion