C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII - Helion
Tytuł oryginału: Essential C# 8.0 (7th Edition) (Addison-Wesley Microsoft Technology Series)
TÅ‚umaczenie: Tomasz Walczak
ISBN: 978-83-283-7567-3
stron: 864, Format: 164x239, okładka: twarda
Data wydania: 2021-04-27
Księgarnia: Helion
Cena książki: 89,40 zł (poprzednio: 149,00 zł)
Oszczędzasz: 40% (-59,60 zł)
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!
Osoby które kupowały "C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII", wybierały także:
- C# 9.0 w pigułce 173,87 zł, (53,90 zł -69%)
- Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń 57,74 zł, (17,90 zł -69%)
- Język C. Kurs video. Praktyczne wprowadzenie do programowania 96,25 zł, (34,65 zł -64%)
- Wzorce projektowe dla programistów C#. Kurs video 96,25 zł, (34,65 zł -64%)
- WPF w .NET 6. Kurs video. Zastosowanie wzorca MVVM i kontrolek w projektach 148,98 zł, (59,59 zł -60%)
Spis treści
C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII -- 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