Book description
To kolejne, przejrzane i zaktualizowane wydanie doskonałego podręcznika dla programistów. Znalazły się tu zwięzłe i dokładne informacje na temat języka C#, Common Language Runtime (CLR) oraz platformy .NET Core. Zaprezentowano precyzyjne opisy pojęć i konkretne przypadki użycia, a poszczególne zagadnienia potraktowano dogłębnie i od strony praktycznej. Sporo uwagi poświęcono dość trudnym tematom, jak współbieżność, bezpieczeństwo i dostęp do funkcji systemu operacyjnego, przy czym nie zaniedbano kwestii czytelności i nie spłycono informacji. Nowe składniki języka C# 8.0 i związanej z nim platformy specjalnie oznaczono, dzięki czemu to wydanie może też służyć jako podręcznik do C# 7.0.
Table of contents
- Wstęp
-
1 Wprowadzenie do C# i .NET Core
- Obiektowość
- Bezpieczeństwo typów
- Zarządzanie pamięcią
- Platformy
- C# i Common Language Runtime
- Frameworki i biblioteki klas bazowych
- Stare i niszowe środowiska
- Windows Runtime
- Historia C# w pigułce
-
2 Podstawy języka C#
- Pierwszy program w języku C#
- Składnia
- Podstawy typów
- Typy liczbowe
- Typ logiczny i operatory
- Łańcuchy znaków i pojedyncze znaki
- Tablice
- Zmienne i parametry
- Wyrażenia i operatory
- Operatory null
- Instrukcje
- Przestrzenie nazw
-
3 Tworzenie typów w języku C#
- Klasy
- Dziedziczenie
- Typ object
- Struktury
- Modyfikatory dostępu
- Interfejsy
- Wyliczenia
- Typy zagnieżdżone
-
Typy generyczne
- Typy generyczne
- Po co są typy generyczne
- Metody generyczne
- Deklarowanie parametrów typów
- Operator typeof i niepowiązane typy generyczne
- Domyślna wartość generyczna
- Ograniczenia typów generycznych
- Tworzenie podklas typów generycznych
- Odwołania do samego siebie w deklaracjach generycznych
- Dane statyczne
- Parametry typów i konwersje
- Kowariancja
- Kontrawariancja
- Typy generyczne C# a szablony C++
-
4 Zaawansowane elementy języka C#
- Delegaty
- Zdarzenia
- Wyrażenia lambda
- Metody anonimowe
- Instrukcje try i wyjątki
- Wyliczenia i iteratory
-
Typy wartościowe dopuszczające wartość null
- Struktura Nullable<T>
- Jawne i niejawne konwersje typów dopuszczających wartość null
- Pakowanie i rozpakowywanie wartości typów dopuszczających wartość null
- Pożyczanie operatorów
- Operatory & i | z typem bool?
- Typy wartościowe dopuszczające wartość null i operatory null
- Zastosowania typów wartościowych dopuszczających wartość null
- Alternatywa dla typów wartościowych dopuszczających wartość null
- Typy referencyjne dopuszczające wartość null (C# 8)
- Metody rozszerzające
- Typy anonimowe
- Krotki
- Wzorce
- Atrybuty
- Atrybuty informacji wywołującego
-
Wiązanie dynamiczne
- Wiązanie statyczne a wiązanie dynamiczne
- Wiązanie niestandardowe
- Wiązanie językowe
- RuntimeBinderException
- Reprezentacja typu dynamic w czasie działania programu
- Konwersje dynamiczne
- Typy var i dynamic
- Wyrażenia dynamiczne
- Wywołania dynamiczne bez dynamicznych odbiorców
- Typy statyczne w wyrażeniach dynamicznych
- Funkcje, których nie da się wywołać
- Przeciążanie operatorów
- Niebezpieczny kod i wskaźniki
- Dyrektywy preprocesora
- Dokumentacja XML
-
5 Ogólny zarys platformy
- .NET Standard
- Wersje środowiska i C#
- Zestawy referencyjne
-
CLR i BCL
- Typy systemowe
- Przetwarzanie tekstu
- Kolekcje
- Zapytania
- XML i JSON
- Diagnostyka
- Współbieżność i asynchroniczność
- Strumienie oraz operacje wejścia i wyjścia
- Sieć
- Serializacja
- Zestawy, refleksja i atrybuty
- Programowanie dynamiczne
- Kryptografia
- Zaawansowane techniki pracy z wątkami
- Programowanie równoległe
- Span<T> i Memory<T>
- Interoperacyjność macierzysta i COM
- Wyrażenia regularne
- Kompilator Roslyn
- Frameworki aplikacji
-
6 Podstawowe wiadomości o platformie
- Obsługa łańcuchów i tekstu
- Data i godzina
- Daty i strefy czasowe
- Formatowanie i parsowanie obiektów DateTime
- Standardowe łańcuchy formatu i flagi parsowania
- Inne mechanizmy konwersji
- Globalizacja
- Praca z liczbami
- Wyliczenia
- Struktura Guid
-
Sprawdzanie równości
- Równość wartościowa i równość referencyjna
- Standardowe protokoły równości
-
Równość i typy definiowane przez programistę
- Zmienianie definicji równości
- Przyspieszanie sprawdzania równości za pomocą struktur
- Jak przesłonić semantykę równości?
- Przesłanianie metody GetHashCode
- Przesłanianie metody Equals
- Przeciążanie operatorów == i !=
- Implementowanie interfejsu IEquatable<T>
- Przykład — struktura Area
- Dołączane komparatory
- Określanie kolejności
- Klasy pomocnicze
- 7 Kolekcje
-
8 Zapytania LINQ
- Podstawy
- Składnia płynna
- Wyrażenia zapytań
- Wykonywanie opóźnione
- Podzapytania
- Tworzenie zapytań złożonych
- Strategie projekcji
- Zapytania interpretowane
- EF Core
- Budowanie wyrażeń zapytań
- 9 Operatory LINQ
- 10 LINQ to XML
- 11 Inne technologie XML i JSON
- 11a XSD i XSLT
-
12 Zwalnianie zasobów i mechanizm usuwania nieużytków
- IDisposable, Dispose i Close
- Automatyczne usuwanie nieużytków
- Finalizatory
- Jak działa mechanizm usuwania nieużytków?
- Wycieki pamięci zarządzanej
- Słabe odwołania
- 13 Diagnostyka
-
14 Współbieżność i asynchroniczność
- Wprowadzenie
-
Wątki
- Tworzenie wątku
- Dołączanie i usypianie
- Blokowanie
- Stan lokalny kontra współdzielony
- Nakładanie blokad i zapewnianie bezpieczeństwa wątków
- Przekazywanie danych do wątku
- Obsługa wyjątków
- Wątki aktywne kontra działające w tle
- Priorytet wątku
- Sygnalizowanie
- Wątki w bogatych aplikacjach klientów
- Kontekst synchronizacji
- Pula wątków
- Zadania
- Reguły asynchroniczności
- Funkcje asynchroniczne w języku C#
- Wzorce asynchroniczności
- Przestarzałe wzorce
-
15 Strumienie i wejście-wyjście
- Architektura strumienia
- Użycie strumieni
- Adapter strumienia
- Kompresja strumienia
- Praca z plikami w postaci archiwum ZIP
- Operacje na plikach i katalogach
- Plikowe operacje wejścia-wyjścia w UWP
- Bezpieczeństwo systemu operacyjnego
- Mapowanie plików w pamięci
-
16 Sieć
- Architektura sieci
- Adresy i porty
- Adresy URI
- Klasy po stronie klienta
- Praca z HTTP
- Tworzenie serwera HTTP
- Użycie FTP
- Użycie DNS
- Wysyłanie poczty elektronicznej za pomocą SmtpClient
- Użycie TCP
- Otrzymywanie poczty elektronicznej POP3 za pomocą TCP
- TCP w UWP
-
17 Serializacja
- Koncepcje serializacji
- Serializator XML
- Serializator JSON
- Serializator binarny
- Atrybuty serializacji binarnej
- Serializacja binarna przy użyciu interfejsu ISerializable
- 17a Serializacja kontraktu danych
-
18 Zestawy
- Co znajduje się w zestawie?
- Silne nazwy i podpisywanie zestawu
- Nazwy zestawów
- Technologia Authenticode
- Zasoby i zestawy satelickie
- Ładowanie, znajdowanie i izolowanie zestawów
-
19 Refleksja i metadane
- Refleksja i aktywacja typów
- Refleksja i wywoływanie składowych
- Refleksja dla zestawów
- Praca z atrybutami
- Generowanie dynamicznego kodu
- Emitowanie zestawów i typów
- Emitowanie składowych typów
- Emitowanie generycznych typów i klas
- Kłopotliwe cele emisji
- Parsowanie IL
- 20 Programowanie dynamiczne
- 21 Kryptografia
- 22 Zaawansowane techniki wielowątkowości
-
23 Programowanie równoległe
- Dlaczego PFX?
- PLINQ
- Klasa Parallel
- Równoległe wykonywanie zadań
- Klasa AggregateException
- Kolekcje współbieżne
- Klasa BlockingCollection<T>
- 24 Struktury Span<T> i Memory<T>
- 25 Współdziałanie macierzyste i poprzez COM
-
26 Wyrażenia regularne
- Podstawy wyrażeń regularnych
- Kwantyfikatory
- Asercje o zerowej wielkości
- Grupy
- Zastępowanie i dzielenie tekstu
-
Receptury wyrażeń regularnych
-
Przepisy
- Dopasowanie numeru ubezpieczenia społecznego i numeru telefonu
- Wyodrębnienie par nazwa=wartość (po jednej dla każdego wiersza)
- Weryfikacja silnego hasła
- Wiersze o długości co najmniej 80 znaków
- Przetwarzanie daty i godziny (N/N/N H:M:S AM/PM)
- Dopasowanie liczb rzymskich
- Usunięcie powtórzonych słów
- Licznik słów
- Dopasowanie wartości GUID
- Przetwarzanie znacznika XML/HTML
- Podział słowa w stylu camelCase
- Pobranie prawidłowej nazwy pliku
- Kodowanie znaków Unicode dla HTML
- Dekodowanie znaków w ciągu tekstowym zapytania HTTP
- Przetwarzanie wyrażeń szukanych w Google pobranych z dziennika zdarzeń serwera
-
Przepisy
- Leksykon języka wyrażeń regularnych
- 27 Kompilator Roslyn
Product information
- Title: C# 8.0 w pigułce
- Author(s):
- Release date: February 2021
- Publisher(s): Helion
- ISBN: 9788328372818
You might also like
book
C# 6.0 – Księga Przepisów
Nowe wydanie bestsellerowej ksiazki w pelni zaktualizowane do wersji C 60 oferuje ponad 150 uzytecznych rozwiazan …
book
C#. Programowanie. Wydanie VI
Najlepszy podręcznik po?więcony C#! W dzisiejszych czasach szczególnš popularno?ciš cieszš się języki programowania pozwalajšce na pisanie …
book
Złożone zagadnienia architektury oprogramowania
W epoce infrastruktur chmurowych, mikrousług czy wysublimowanych wzorców projektowych architekt oprogramowania musi sobie radzić z trudnym …
book
Uczenie głębokie od zera
Ten praktyczny podręcznik, poświęcony podstawom uczenia głębokiego, zrozumiale i wyczerpująco przedstawia zasady działania sieci neuronowych z …