C# 8.0 w pigułce - ebook
C# 8.0 w pigułce - ebook
C# jest od początku rozwijany w konsekwentny, przemyślany sposób, a każda nowa funkcjonalność idealnie integruje się z resztą języka. W efekcie łączy on nowoczesność i bezpieczeństwo. Wersja 8.0 jest kolejną poważną aktualizacją tego języka. Zapewnia wysokopoziomowe abstrakcje, między innymi wyrażenia, zapytania i kontynuacje asynchroniczne, ale także udostępnia niskopoziomowe mechanizmy pozwalające osiągnąć maksymalną wydajność aplikacji dzięki wykorzystaniu takich konstrukcji jak własne typy wartościowe programisty czy opcjonalne wskaźniki. Ceną, jaką programista płaci za ten rozwój, jest konieczność ciągłej nauki.
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.
W książce między innymi:
- składnia C#, definiowanie zmiennych, wskaźniki, domknięcia i wzorce
- tajniki LINQ i praca na danych
- programowanie współbieżne i asynchroniczne
- praca z wątkami i programowanie równoległe
- narzędzia platformy .NET oraz kompilator Roslyn
Sprawdź, jak w C# pracują najlepsi programiści!
Spis treści
Wstęp 11
1. Wprowadzenie do C# i .NET Core 17
- Obiektowość 17
- Bezpieczeństwo typów 18
- Zarządzanie pamięcią 19
- Platformy 19
- C# i Common Language Runtime 20
- Frameworki i biblioteki klas bazowych 20
- Stare i niszowe środowiska 22
- Windows Runtime 23
- Historia C# w pigułce 24
2. Podstawy języka C# 37
- Pierwszy program w języku C# 37
- Składnia 40
- Podstawy typów 43
- Typy liczbowe 51
- Typ logiczny i operatory 58
- Łańcuchy znaków i pojedyncze znaki 60
- Tablice 62
- Zmienne i parametry 67
- Wyrażenia i operatory 78
- Operatory null 82
- Instrukcje 84
- Przestrzenie nazw 93
3. Tworzenie typów w języku C# 101
- Klasy 101
- Dziedziczenie 117
- Typ object 126
- Struktury 130
- Modyfikatory dostępu 132
- Interfejsy 134
- Wyliczenia 140
- Typy zagnieżdżone 143
- Typy generyczne 145
4. Zaawansowane elementy języka C# 157
- Delegaty 157
- Zdarzenia 165
- Wyrażenia lambda 172
- Metody anonimowe 176
- Instrukcje try i wyjątki 176
- Wyliczenia i iteratory 185
- Typy wartościowe dopuszczające wartość null 189
- Typy referencyjne dopuszczające wartość null (C# 8) 195
- Metody rozszerzające 197
- Typy anonimowe 200
- Krotki 201
- Wzorce 205
- Atrybuty 208
- Atrybuty informacji wywołującego 210
- Wiązanie dynamiczne 211
- Przeciążanie operatorów 219
- Niebezpieczny kod i wskaźniki 222
- Dyrektywy preprocesora 226
- Dokumentacja XML 228
5. Ogólny zarys platformy 233
- .NET Standard 233
- Wersje środowiska i C# 236
- Zestawy referencyjne 237
- CLR i BCL 237
- Frameworki aplikacji 241
6. Podstawowe wiadomości o platformie 245
- Obsługa łańcuchów i tekstu 245
- Data i godzina 258
- Daty i strefy czasowe 265
- Formatowanie i parsowanie obiektów DateTime 270
- Standardowe łańcuchy formatu i flagi parsowania 275
- Inne mechanizmy konwersji 282
- Globalizacja 286
- Praca z liczbami 287
- Wyliczenia 291
- Struktura Guid 294
- Sprawdzanie równości 295
- Określanie kolejności 305
- Klasy pomocnicze 308
7. Kolekcje 313
- Przeliczalność 313
- Interfejsy ICollection i IList 320
- Klasa Array 323
- Listy, kolejki, stosy i zbiory 331
- Słowniki 340
- Kolekcje i pośredniki z możliwością dostosowywania 346
- Niezmienne kolekcje 351
- Dołączanie protokołów równości i porządkowania 355
8. Zapytania LINQ 361
- Podstawy 361
- Składnia płynna 363
- Wyrażenia zapytań 369
- Wykonywanie opóźnione 373
- Podzapytania 379
- Tworzenie zapytań złożonych 382
- Strategie projekcji 386
- Zapytania interpretowane 388
- EF Core 394
- Budowanie wyrażeń zapytań 405
9. Operatory LINQ 411
- Informacje ogólne 412
- Filtrowanie 415
- Projekcja 419
- Łączenie 430
- Porządkowanie 437
- Grupowanie 440
- Operatory zbiorów 443
- Metody konwersji 444
- Operatory elementów 447
- Metody agregacyjne 449
- Kwantyfikatory 453
- Metody generujące 454
10. LINQ to XML 457
- Przegląd architektury 457
- Informacje ogólne o X-DOM 458
- Tworzenie drzewa X-DOM 461
- Nawigowanie i wysyłanie zapytań 464
- Modyfikowanie drzewa X-DOM 468
- Praca z wartościami 471
- Dokumenty i deklaracje 474
- Nazwy i przestrzenie nazw 477
- Adnotacje 482
- Projekcja do X-DOM 483
11. Inne technologie XML i JSON 487
- Klasa XmlReader 487
- Klasa XmlWriter 494
- Typowe zastosowania klas XmlReader i XmlWriter 496
- Praca z formatem JSON 501
12. Zwalnianie zasobów i mechanizm usuwania nieużytków 509
- IDisposable, Dispose i Close 509
- Automatyczne usuwanie nieużytków 515
- Finalizatory 518
- Jak działa mechanizm usuwania nieużytków? 522
- Wycieki pamięci zarządzanej 529
- Słabe odwołania 532
13. Diagnostyka 537
- Kompilacja warunkowa 537
- Debugowanie i klasy monitorowania 541
- Integracja z debuggerem 544
- Procesy i wątki procesów 545
- Klasy StackTrace i StackFrame 546
- Dziennik zdarzeń Windows 548
- Liczniki wydajności 550
- Klasa Stopwatch 554
- Międzyplatformowe narzędzia diagnostyczne 555
14. Współbieżność i asynchroniczność 559
- Wprowadzenie 559
- Wątki 560
- Zadania 576
- Reguły asynchroniczności 584
- Funkcje asynchroniczne w języku C# 589
- Wzorce asynchroniczności 608
- Przestarzałe wzorce 616
15. Strumienie i wejście-wyjście 621
- Architektura strumienia 621
- Użycie strumieni 623
- Adapter strumienia 637
- Kompresja strumienia 645
- Praca z plikami w postaci archiwum ZIP 648
- Operacje na plikach i katalogach 649
- Plikowe operacje wejścia-wyjścia w UWP 658
- Bezpieczeństwo systemu operacyjnego 663
- Mapowanie plików w pamięci 665
16. Sieć 671
- Architektura sieci 671
- Adresy i porty 674
- Adresy URI 675
- Klasy po stronie klienta 677
- Praca z HTTP 689
- Tworzenie serwera HTTP 693
- Użycie FTP 696
- Użycie DNS 698
- Wysyłanie poczty elektronicznej za pomocą SmtpClient 699
- Użycie TCP 700
- Otrzymywanie poczty elektronicznej POP3 za pomocą TCP 703
- TCP w UWP 705
17. Serializacja 707
- Koncepcje serializacji 707
- Serializator XML 711
- Serializator JSON 720
- Serializator binarny 729
- Atrybuty serializacji binarnej 730
- Serializacja binarna przy użyciu interfejsu ISerializable 732
18. Zestawy 737
- Co znajduje się w zestawie? 737
- Silne nazwy i podpisywanie zestawu 741
- Nazwy zestawów 743
- Technologia Authenticode 745
- Zasoby i zestawy satelickie 748
- Ładowanie, znajdowanie i izolowanie zestawów 755
19. Refleksja i metadane 775
- Refleksja i aktywacja typów 776
- Refleksja i wywoływanie składowych 782
- Refleksja dla zestawów 794
- Praca z atrybutami 795
- Generowanie dynamicznego kodu 799
- Emitowanie zestawów i typów 806
- Emitowanie składowych typów 809
- Emitowanie generycznych typów i klas 814
- Kłopotliwe cele emisji 816
- Parsowanie IL 819
20. Programowanie dynamiczne 825
- Dynamiczny system wykonawczy języka 825
- Unifikacja typów liczbowych 827
- Dynamiczne wybieranie przeciążonych składowych 828
- Implementowanie obiektów dynamicznych 834
- Współpraca z językami dynamicznymi 837
21. Kryptografia 839
- Informacje ogólne 839
- Windows Data Protection 839
- Obliczanie skrótów 841
- Szyfrowanie symetryczne 843
- Szyfrowanie kluczem publicznym i podpisywanie 848
22. Zaawansowane techniki wielowątkowości 853
- Przegląd technik synchronizacji 854
- Blokowanie wykluczające 854
- Blokady i bezpieczeństwo ze względu na wątki 862
- Blokowanie bez wykluczania 868
- Sygnalizacja przy użyciu uchwytów zdarzeń oczekiwania 874
- Klasa Barrier 881
- Leniwa inicjalizacja 882
- Pamięć lokalna wątku 885
- Zegary 888
23. Programowanie równoległe 893
- Dlaczego PFX? 894
- PLINQ 897
- Klasa Parallel 909
- Równoległe wykonywanie zadań 915
- Klasa AggregateException 924
- Kolekcje współbieżne 927
- Klasa BlockingCollection
929
24. Struktury Span 25. Współdziałanie macierzyste i poprzez COM 943 26. Wyrażenia regularne 965 27. Kompilator Roslyn 985
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-7282-5 |
Rozmiar pliku: | 7,5 MB |