Helion


Szczegóły ebooka

C# 9.0 w pigułce

C# 9.0 w pigułce


C# jest uważany za flagowy produkt firmy Microsoft. Od początku był konsekwentnie rozwijany - z najwyższą troską o elastyczność i wszechstronność. W efekcie pozwala na pisanie bezpiecznego kodu. Wersja 9.0 jest ósmą poważną aktualizacją tego języka. Zapewnia wysokopoziomowe abstrakcje, takie jak wyrażenia, zapytania i kontynuacje asynchroniczne, ale także udostępnia niskopoziomowe mechanizmy pozwalające uzyskać maksymalną wydajność aplikacji. Cel ten jest osiągany dzięki takim konstrukcjom jak własne typy wartościowe programisty czy opcjonalne wskaźniki. Tych nowości trzeba się uczyć, ale czas na to poświęcony rekompensuje przyjemne tworzenie znakomitego kodu.

To zaktualizowane wydanie znakomitego podręcznika dla programistów. Zawiera zwięzłe i dokładne informacje na temat języka C#, Common Language Runtime (CLR), a także biblioteki klas .NET 5 Base Class Library (BCL). Nowe składniki języka C# 9.0 i związanej z nim platformy specjalnie oznaczono, dzięki czemu książka może też służyć jako podręcznik do nauki C# 8.0 i C# 7.0. Znalazły się tu precyzyjne opisy pojęć i przypadków użycia z naciskiem na praktyczność zastosowań. Sporo uwagi poświęcono dość trudnym tematom, jak współbieżność, bezpieczeństwo i dostęp do funkcji systemu operacyjnego. Ten zwięzły przewodnik sprawdzi się doskonale jako stała pomoc w codziennej pracy programisty C#.

W książce między innymi:

  • składnia C#, definiowanie zmiennych, wskaźniki, domknięcia i wzorce
  • tajniki LINQ, dane i praca z bazą danych
  • programowanie współbieżne i asynchroniczne
  • zaawansowane techniki pracy z wątkami i programowanie równoległe
  • narzędzia platformy.NET i struktury Span oraz kryptografia

Trzymaj tę książkę stale na swoim biurku!


Wstęp 11

1. Wprowadzenie do C# i .NET 17

  • Obiektowość 17
  • Bezpieczeństwo typów 18
  • Zarządzanie pamięcią 19
  • Platformy 19
  • Historia C# w pigułce 24

2. Podstawy języka C# 39

  • Pierwszy program w języku C# 39
  • Składnia 42
  • Podstawy typów 44
  • Typy liczbowe 54
  • Typ logiczny i operatory 63
  • Łańcuchy znaków i pojedyncze znaki 65
  • Tablice 67
  • Zmienne i parametry 72
  • Wyrażenia i operatory 83
  • Operatory null 87
  • Instrukcje 88
  • Przestrzenie nazw 99

3. Tworzenie typów w języku C# 105

  • Klasy 105
  • Dziedziczenie 124
  • Typ object 134
  • Struktury 138
  • Modyfikatory dostępu 140
  • Interfejsy 142
  • Wyliczenia 148
  • Typy zagnieżdżone 152
  • Typy generyczne 153

4. Zaawansowane elementy języka C# 166

  • Delegaty 166
  • Zdarzenia 174
  • Wyrażenia lambda 180
  • Metody anonimowe 185
  • Instrukcje try i wyjątki 186
  • Wyliczenia i iteratory 194
  • Typy wartościowe dopuszczające wartość null 199
  • Typy referencyjne dopuszczające wartość null 205
  • Metody rozszerzające 207
  • Typy anonimowe 210
  • Krotki 211
  • Rekordy (C# 9) 214
  • Wzorce 224
  • Atrybuty 229
  • Atrybuty informacji wywołującego 231
  • Wiązanie dynamiczne 232
  • Przeciążanie operatorów 239
  • Niebezpieczny kod i wskaźniki 243
  • Dyrektywy preprocesora 248
  • Dokumentacja XML 250

5. Ogólny zarys platformy 255

  • .NET Standard 255
  • Wersje środowiska i C# 258
  • Zestawy referencyjne 258
  • CLR i BCL 259
  • Warstwy aplikacji 263

6. Podstawowe wiadomości o platformie .NET 267

  • Obsługa łańcuchów i tekstu 267
  • Data i godzina 280
  • Daty i strefy czasowe 288
  • Formatowanie i parsowanie obiektów DateTime 292
  • Standardowe łańcuchy formatu i flagi parsowania 298
  • Inne mechanizmy konwersji 304
  • Globalizacja 308
  • Praca z liczbami 309
  • Wyliczenia 314
  • Struktura Guid 317
  • Porównywanie 318
  • Określanie kolejności 328
  • Klasy pomocnicze 331

7. Kolekcje 336

  • Przeliczalność 336
  • Interfejsy ICollection i IList 343
  • Klasa Array 346
  • Listy, kolejki, stosy i zbiory 354
  • Słowniki 363
  • Kolekcje i pośredniki z możliwością dostosowywania 369
  • Niezmienne kolekcje 374
  • Dołączanie protokołów równości i porządkowania 378

8. Zapytania LINQ 385

  • Podstawy 385
  • Składnia płynna 387
  • Wyrażenia zapytań 393
  • Wykonywanie opóźnione 397
  • Podzapytania 403
  • Tworzenie zapytań złożonych 406
  • Strategie projekcji 410
  • Zapytania interpretowane 412
  • EF Core 418
  • Budowanie wyrażeń zapytań 429

9. Operatory LINQ 434

  • Informacje ogólne 435
  • Filtrowanie 438
  • Projekcja 442
  • Łączenie 453
  • Porządkowanie 461
  • Grupowanie 464
  • Operatory zbiorów 467
  • Metody konwersji 468
  • Operatory elementów 471
  • Metody agregacyjne 473
  • Kwantyfikatory 477
  • Metody generujące 478

10. LINQ to XML 480

  • Przegląd architektury 480
  • Informacje ogólne o X-DOM 481
  • Tworzenie drzewa X-DOM 484
  • Nawigowanie i wysyłanie zapytań 487
  • Modyfikowanie drzewa X-DOM 492
  • Praca z wartościami 495
  • Dokumenty i deklaracje 497
  • Nazwy i przestrzenie nazw 501
  • Adnotacje 506
  • Projekcja do X-DOM 507

11. Inne technologie XML i JSON 511

  • Klasa XmlReader 511
  • Klasa XmlWriter 519
  • Typowe zastosowania klas XmlReader i XmlWriter 521
  • Praca z formatem JSON 526

12. Zwalnianie zasobów i mechanizm usuwania nieużytków 533

  • IDisposable, Dispose i Close 533
  • Automatyczne usuwanie nieużytków 539
  • Finalizatory 541
  • Jak działa mechanizm usuwania nieużytków? 546
  • Wycieki pamięci zarządzanej 553
  • Słabe odwołania 556

13. Diagnostyka 561

  • Kompilacja warunkowa 561
  • Debugowanie i klasy monitorowania 565
  • Integracja z debuggerem 568
  • Procesy i wątki procesów 569
  • Klasy StackTrace i StackFrame 570
  • Dziennik zdarzeń Windows 572
  • Liczniki wydajności 574
  • Klasa Stopwatch 578
  • Międzyplatformowe narzędzia diagnostyczne 579

14. Współbieżność i asynchroniczność 583

  • Wprowadzenie 583
  • Wątki 584
  • Zadania 600
  • Reguły asynchroniczności 609
  • Funkcje asynchroniczne w języku C# 614
  • Wzorce asynchroniczności 633
  • Przestarzałe wzorce 641

15. Strumienie i wejście-wyjście 645

  • Architektura strumienia 645
  • Użycie strumieni 647
  • Adapter strumienia 661
  • Kompresja strumienia 669
  • Praca z plikami w postaci archiwum ZIP 672
  • Operacje na plikach i katalogach 673
  • Plikowe operacje wejścia-wyjścia w UWP 683
  • Bezpieczeństwo systemu operacyjnego 687
  • Mapowanie plików w pamięci 690

16. Sieć 694

  • Architektura sieci 694
  • Adresy i porty 697
  • Adresy URI 698
  • Klasy po stronie klienta 700
  • Praca z HTTP 713
  • Tworzenie serwera HTTP 717
  • Użycie FTP 719
  • Użycie DNS 721
  • Wysyłanie poczty elektronicznej za pomocą SmtpClient 722
  • Użycie TCP 723
  • Otrzymywanie poczty elektronicznej POP3 za pomocą TCP 726
  • TCP w UWP 728

17. Zestawy 730

  • Co znajduje się w zestawie? 730
  • Silne nazwy i podpisywanie zestawu 734
  • Nazwy zestawów 735
  • Technologia Authenticode 738
  • Zasoby i zestawy satelickie 740
  • Ładowanie, znajdowanie i izolowanie zestawów 748

18. Refleksja i metadane 768

  • Refleksja i aktywacja typów 769
  • Refleksja i wywoływanie składowych 775
  • Refleksja dla zestawów 787
  • Praca z atrybutami 788
  • Generowanie dynamicznego kodu 793
  • Emitowanie zestawów i typów 800
  • Emitowanie składowych typów 802
  • Emitowanie generycznych typów i klas 808
  • Kłopotliwe cele emisji 810
  • Parsowanie IL 813

19. Programowanie dynamiczne 818

  • Dynamiczny system wykonawczy języka 818
  • Unifikacja typów liczbowych 820
  • Dynamiczne wybieranie przeciążonych składowych 821
  • Implementowanie obiektów dynamicznych 827
  • Współpraca z językami dynamicznymi 830

20. Kryptografia 832

  • Informacje ogólne 832
  • Windows Data Protection 832
  • Obliczanie skrótów 834
  • Szyfrowanie symetryczne 835
  • Szyfrowanie kluczem publicznym i podpisywanie 840

21. Zaawansowane techniki wielowątkowości 845

  • Przegląd technik synchronizacji 846
  • Blokowanie wykluczające 846
  • Blokady i bezpieczeństwo ze względu na wątki 854
  • Blokowanie bez wykluczania 859
  • Sygnalizacja przy użyciu uchwytów zdarzeń oczekiwania 866
  • Klasa Barrier 873
  • Leniwa inicjalizacja 874
  • Pamięć lokalna wątku 877
  • Zegary 880

22. Programowanie równoległe 884

  • Dlaczego PFX? 885
  • PLINQ 888
  • Klasa Parallel 900
  • Równoległe wykonywanie zadań 906
  • Klasa AggregateException 916
  • Kolekcje współbieżne 918
  • Klasa BlockingCollection 921

23. Struktury Spani Memory 925

  • Struktura Span i plasterkowanie 926
  • Struktura Memory 929
  • Enumeratory działające tylko do przodu 930
  • Praca z pamięcią alokowaną na stosie i niezarządzaną 932

24. Współdziałanie macierzyste i poprzez COM 934

  • Odwołania do natywnych bibliotek DLL 934
  • Szeregowanie typów i parametrów 935
  • Wywołania zwrotne z kodu niezarządzanego 939
  • Symulowanie unii C 942
  • Pamięć współdzielona 943
  • Mapowanie struktury na pamięć niezarządzaną 945
  • Współpraca COM 949
  • Wywołanie komponentu COM z C# 951
  • Osadzanie typów współpracujących 954
  • Udostępnianie obiektów C# COM 955

25. Wyrażenia regularne 957

  • Podstawy wyrażeń regularnych 957
  • Kwantyfikatory 962
  • Asercje o zerowej wielkości 963
  • Grupy 966
  • Zastępowanie i dzielenie tekstu 967
  • Receptury wyrażeń regularnych 969
  • Leksykon języka wyrażeń regularnych 972

Skorowidz 977

  • Tytuły: C# 9.0 w pigułce
  • Autor: Joseph Albahari
  • Tytuł oryginału: C# 9.0 in a Nutshell: The Definitive Reference
  • Tłumaczenie: Łukasz Piwko, Robert Górczyński, Jakub Hubisz
  • ISBN książki drukowanej: 978-83-283-8198-8, 9788328381988
  • Data wydania książki drukowanej: 2022-02-28
  • ISBN Ebooka: 978-83-283-8199-5, 9788328381995
  • Data wydania: 2022-02-28
  • Format: 164x239
  • Identyfikator pozycji: c9wpig
  • Kategorie:
  • Wydawca: Helion