C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII - ebook
C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII - ebook
C# jest jednym z najlepszych dzieł Microsoftu - cechuje go dojrzałość, prostota i nowoczesność. Został zaprojektowany jako język obiektowy i konsekwentnie jest rozwijany. Służy do tworzenia aplikacji sieciowych, mikrousług, aplikacji desktopowych, oprogramowania dla urządzeń mobilnych i internetu rzeczy. Ponadto C# jest językiem otwartym, pozwalającym na pisanie kodu bezpiecznego, przejrzystego, wydajnego i prostego w konserwacji. W wersji 8.0 pojawiły się funkcjonalności, które jeszcze bardziej usprawniają pracę programisty.
To siódme, zaktualizowane i uzupełnione wydanie jednego z najlepszych podręczników programowania, docenianego przez programistów na każdym poziomie zaawansowania. Poza znakomitym samouczkiem języka C# znalazły się tu informacje o poszczególnych metodykach programowania. Książka zawiera także omówienie nowości w C#: typów referencyjnych dopuszczających wartość null, indeksów, przedziałów, rozbudowanego dopasowywania do wzorca, strumieni asynchronicznych i innych. Treść jest uporządkowana i przejrzysta, co nadaje podręcznikowi przystępną formę, a zawarte w nim wskazówki pomagają w ograniczeniu liczby błędów w kodzie.
W książce między innymi:
- istotne konstrukcje w C#
- techniki programowania obiektowego w C#, w tym klasy, dziedziczenie i interfejsy
- typy generyczne, delegaty, wyrażenia lambda oraz refleksje i atrybuty
- strumienie asynchroniczne
- przetwarzanie równoległe i wielowątkowość
- współdziałanie z kodem niezarządzanym
C#. Praktyczne rozwiązania rzeczywistych problemów!
Spis treści
Spis rysunków 11
Spis tabel 13
Przedmowa 15
Wprowadzenie 17
O autorze 28
Podziękowania 29
1. Wprowadzenie do języka C# 31
- Witaj, świecie 32
- Podstawy składni języka C# 42
- Korzystanie ze zmiennych 49
- Dane wejściowe i wyjściowe w konsoli 52
- Wykonywanie kodu w środowisku zarządzanym iplatforma CLI 59
- Różne wersje platformy .NET 63
- Podsumowanie 67
2. Typy danych 69
- Podstawowe typy liczbowe 69
- Inne podstawowe typy 77
- Konwersje typów danych 91
- Podsumowanie 97
3. Jeszcze o typach danych 99
- Kategorie typów 99
- Deklarowanie typów umożliwiających stosowanie wartości null 102
- Zmienne lokalne z niejawnie określanym typem danych 106
- Krotki 108
- Tablice 114
- Podsumowanie 130
4. Operatory i przepływ sterowania 131
- Operatory 132
- Zarządzanie przepływem sterowania 145
- Bloki kodu ({}) 150
- Bloki kodu, zasięgi i przestrzenie deklaracji 152
- Wyrażenia logiczne 154
- Programowanie z użyciem wartości null 158
- Operatory bitowe (<<, >>, |, &, ^, ~) 164
- Instrukcje związane z przepływem sterowania - ciąg dalszy 169
- Instrukcje skoku 179
- Dyrektywy preprocesora języka C# 184
- Podsumowanie 191
5. Metody i parametry 193
- Wywoływanie metody 194
- Deklarowanie metody 199
- Dyrektywa using 204
- Zwracane wartości i parametry metody Main() 208
- Zaawansowane parametry metod 211
- Rekurencja 220
- Przeciążanie metod 223
- Parametry opcjonalne 226
- Podstawowa obsługa błędów z wykorzystaniem wyjątków 229
- Podsumowanie 241
6. Klasy 243
- Deklarowanie klasy i tworzenie jej instancji 246
- Pola instancji 249
- Metody instancji 251
- Stosowanie słowa kluczowego this 252
- Modyfikatory dostępu 258
- Właściwości 260
- Konstruktory 274
- Konstruktory a właściwości typów referencyjnych niedopuszczających wartości null 283
- Atrybuty dopuszczające wartość null 286
- Dekonstruktory 288
- Składowe statyczne 290
- Metody rozszerzające 298
- Hermetyzacja danych 299
- Klasy zagnieżdżone 302
- Klasy częściowe 304
- Podsumowanie 308
7. Dziedziczenie 309
- Tworzenie klas pochodnych 310
- Przesłanianie składowych z klas bazowych 318
- Klasy abstrakcyjne 328
- Wszystkie klasy są pochodne od System.Object 334
- Dopasowanie do wzorca za pomocą operatora is 335
- Dopasowanie do wzorca w wyrażeniu switch 340
- Unikaj dopasowania do wzorca, gdy możliwy jest polimorfizm 341
- Podsumowanie 343
8. Interfejsy 345
- Wprowadzenie do interfejsów 346
- Polimorfizm oparty na interfejsach 347
- Implementacja interfejsu 351
- Przekształcanie między klasą z implementacją i interfejsami 356
- Dziedziczenie interfejsów 356
- Dziedziczenie po wielu interfejsach 359
- Metody rozszerzające i interfejsy 359
- Zarządzanie wersjami 361
- Metody rozszerzające a domyślne składowe interfejsu 374
- Interfejsy a klasy abstrakcyjne 375
- Interfejsy a atrybuty 377
- Podsumowanie 377
9. Typy bezpośrednie 379
- Struktury 383
- Opakowywanie 388
- Wyliczenia 395
- Podsumowanie 405
10. Dobrze uformowane typy 407
- Przesłanianie składowych z klasy object 407
- Przeciążanie operatorów 418
- Wskazywanie innych podzespołów 425
- Hermetyzacja typów 431
- Definiowanie przestrzeni nazw 433
- Komentarze XML-owe 436
- Odzyskiwanie pamięci 440
- Porządkowanie zasobów 443
- Leniwe inicjowanie 455
- Podsumowanie 457
11. Obsługa wyjątków 459
- Wiele typów wyjątków 459
- Przechwytywanie wyjątków 462
- Ponowne zgłaszanie przetwarzanego wyjątku 463
- Ogólny blok catch 465
- Wskazówki związane z obsługą wyjątków 466
- Definiowanie niestandardowych wyjątków 469
- Ponowne zgłaszanie opakowanego wyjątku 471
- Podsumowanie 475
12. Typy generyczne 477
- Język C# bez typów generycznych 478
- Wprowadzenie do typów generycznych 482
- Ograniczenia 493
- Metody generyczne 507
- Kowariancja i kontrawariancja 511
- Wewnętrzne mechanizmy typów generycznych 517
- Podsumowanie 521
13. Delegaty i wyrażenia lambda 523
- Wprowadzenie do delegatów 524
- Deklarowanie typu delegata 527
- Wyrażenia lambda 534
- Lambdy w postaci instrukcji 535
- Metody anonimowe 539
- Delegaty nie zapewniają równości strukturalnej 541
- Zmienne zewnętrzne 543
- Drzewo wyrażeń 547
- Podsumowanie 553
14. Zdarzenia 555
- Implementacja wzorca publikuj-subskrybuj za pomocą delegatów typu multicast 556
- Zdarzenia 569
- Podsumowanie 578
15. Interfejsy kolekcji ze standardowymi operatorami kwerend 579
- Inicjatory kolekcji 580
- Interfejs IEnumerable
sprawia, że klasa staje się kolekcją 582 - Standardowe operatory kwerend 587
- Typy anonimowe w technologii LINQ 615
- Podsumowanie 622
16. Technologia LINQ i wyrażenia z kwerendami 623
- Wprowadzenie do wyrażeń z kwerendami 624
- Wyrażenia z kwerendą to tylko wywołania metod 639
- Podsumowanie 641
17. Tworzenie niestandardowych kolekcji 643
- Inne interfejsy implementowane w kolekcjach 644
- Podstawowe klasy kolekcji 646
- Udostępnianie indeksera 661
- Zwracanie wartości null lub pustej kolekcji 664
- Iteratory 665
- Podsumowanie 677
18. Refleksja, atrybuty i programowanie dynamiczne 679
- Mechanizm refleksji 680
- Operator nameof 689
- Atrybuty 690
- Programowanie z wykorzystaniem obiektów dynamicznych 705
- Podsumowanie 714
19. Wprowadzenie do wielowątkowości 717
- Podstawy wielowątkowości 719
- Zadania asynchroniczne 724
- Anulowanie zadania 741
- Używanie przestrzeni nazw System.Threading 746
- Podsumowanie 748
20. Programowanie z wykorzystaniem wzorca TAP 749
- Synchroniczne wykonywanie operacji o wysokiej latencji 750
- Asynchroniczne wywoływanie operacji o dużej latencji za pomocą biblioteki TPL 752
- Asynchroniczność oparta na zadaniach oraz instrukcjach async i await 756
- Dodanie możliwości zwracania typu ValueTask
w metodach asynchronicznych 761 - Strumienie asynchroniczne 763
- Interfejs IAsyncDisposable a deklaracje i instrukcje await using 766
- Używanie technologii LINQ razem z interfejsem IAsyncEnumerable 767
- Zwracanie wartości void w metodach asynchronicznych 769
- Asynchroniczne lambdy i funkcje lokalne 772
- Programy szeregujące zadania i kontekst synchronizacji 777
- Modyfikatory async i await w programach z interfejsem użytkownika z systemu Windows 779
- Podsumowanie 782
21. Równoległe iteracje 783
- Równoległe wykonywanie iteracji pętli 783
- Równoległe wykonywanie kwerend LINQ 791
- Podsumowanie 796
22. Synchronizowanie wątków 797
- Po co stosować synchronizację? 798
- Zegary 822
- Podsumowanie 823
23. Współdziałanie między platformami i niezabezpieczony kod 825
- Mechanizm P/Invoke 826
- Wskaźniki i adresy 837
- Wykonywanie niezabezpieczonego kodu za pomocą delegata 845
- Podsumowanie 846
24. Standard CLI 847
- Definiowanie standardu CLI 847
- Implementacje standardu CLI 848
- Specyfikacja .NET Standard 851
- Biblioteka BCL 851
- Kompilacja kodu w języku C# na kod maszynowy 852
- Środowisko uruchomieniowe 853
- Podzespoły, manifesty i moduły 857
- Język Common Intermediate Language 859
- Common Type System 860
- Common Language Specification 861
- Metadane 861
- Architektura .NET Native i kompilacja AOT 862
- Podsumowanie 862
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-7568-0 |
Rozmiar pliku: | 7,4 MB |