www.ksiazki24h.pl
wprowadź własne kryteria wyszukiwania książek: (jak szukać?)
Twój koszyk:   1 egz. / 45.50 43,23   zamówienie wysyłkowe >>>
Strona główna > opis książki

C# LEKCJE PROGRAMOWANIA PRAKTYCZNA NAUKA PROGRAMOWANIA DLA PLATFORM .NET I .NET CORE


MATULEWSKI J.

wydawnictwo: HELION , rok wydania 2021, wydanie I

cena netto: 119.00 Twoja cena  113,05 zł + 5% vat - dodaj do koszyka

C#

Lekcje programowania

Praktyczna nauka programowania dla platform .NET i .NET Core

Książka, którą trzymasz w ręku, to znakomity podręcznik do nauki programowania od podstaw. Autor, wieloletni wykładowca akademicki i nauczyciel studentów informatyki, proponuje naukę programowania w języku C#. To wybór nieprzypadkowy. C# jest nowoczesnym, obiektowym, stale rozwijanym i popularnym językiem, którym opiekuje się firma Microsoft. Dodatkowo ― dzięki podobieństwu C# do innych często używanych języków z rodziny C, C++ i Java ― wszystko, czego nauczysz się z podręcznika, możesz wykorzystać także do programowania w tych językach.

Zakres zagadnień omawianych w książce obejmuje:

  • język programowania C# 6.0, w tym posługiwanie się zmiennymi, metodami, tablicami oraz kolekcjami danych z platform .NET i .NET Core
  • podstawowe techniki programowania obiektowego
  • różne formaty przechowywania i eksportu danych
  • darmowe środowisko programistyczne Microsoft Visual Studio 2019 Community
  • Jeżeli chcesz uczyć się programować od podstaw ― to książka dla Ciebie.

Jeżeli znasz już podstawy, ale chcesz poznać C# oraz platformy .NET i .NET Core ― to również dobry wybór.

Uwaga! Podręcznik zawiera ćwiczenia, w których krok po kroku opisano tworzenie aplikacji konsolowych w darmowym Visual Studio 2019 i omówiono ich kod, a także bogaty zestaw zadań do samodzielnego wykonania!

Wstęp 17

CZĘŚĆ I. PODSTAWY PROGRAMOWANIA 19

Rozdział 1. Pierwszy kontakt ze środowiskiem Visual Studio 2019 i językiem C# 21

Projekt aplikacji konsolowej 22
Skróty klawiszowe Visual Studio 25
Podpowiadanie kodu (IntelliSense) 27
Strumienie wyjścia i wejścia 28
Wszystkiego po trochu 29
Pytania 32

Rozdział 2. NET Framework, .NET Core i .NET Standard 33

Pytania 36

Rozdział 3. Podstawowe typy danych 37

Deklaracja i zmiana wartości zmiennej 37
Typy liczbowe oraz typ znakowy 39
Określanie typu zmiennej przy inicjacji (pseudotyp var) 41
Operatory 42
Konwersje typów 45
Łańcuchy 46
String kontra StringBuilder 48
[Dla dociekliwych] Formatowanie łańcuchów 50
Typ wyliczeniowy 51
Ćwiczenia 52
Średnia arytmetyczna 52
Równanie kwadratowe 55
Łańcuchy 57
Pytania 57
Zadanie 58

Rozdział 4. Metody 59

Parametry metody. Przeciążanie metod 60
Domyślne wartości argumentów metod - argumenty opcjonalne 61
Argumenty nazwane 62
Wartości zwracane przez metody 62
Zwracanie wartości przez argument metody 63
[Dla dociekliwych] Zagadnienia zaawansowane 65
[Dla dociekliwych] Delegacje 65
[Dla dociekliwych] Wyrażenia lambda 66
[Dla dociekliwych] Delegacje Action, Func i Predicate 68
[Dla dociekliwych] Caller Information 69
Ćwiczenia 71
Średnia arytmetyczna 71
Parzystość 71
Zamiana parametrów 72
[Dla dociekliwych] Metoda ogólna 73
Równanie kwadratowe 74
[Dla dociekliwych] Pochodne 75
Pytania 77

Rozdział 5. Sterowanie przepływem 79

Wybór 79
Instrukcja warunkowa if..else 79
Konstrukcja if..else..if 80
Instrukcja wyboru switch 81
[Dla dociekliwych] Nowa składnia switch 82
Powtarzanie 83
Pętla for 84
Pętla while 86
Przerywanie iteracji i pętli 88
Wyjątki 88
Przechwytywanie wyjątków 89
[Dla dociekliwych] Filtrowanie wyjątków 89
[Dla dociekliwych] Sekcja finally 90
Zgłaszanie wyjątków 91
[Dla dociekliwych] Dyrektywy preprocesora 92
Kompilacja warunkowa 92
Definiowanie stałych preprocesora 94
Bloki 95
[Dla dociekliwych] Atrybuty 96
Ćwiczenia 96
Pętla for 96
Liczba Eulera 98
Pytaj aż do skutku 101
Pytania 103
Zadania 104

Rozdział 6. Wiele hałasu o null 107

Typy wartościowe i referencyjne 107
Zwalnianie obiektów z pamięci 110
Nullable 114
[Dla dociekliwych] Leniwe inicjowanie zmiennych 116
Pudełkowanie 116
Operatory is i as 117
[Dla dociekliwych] Typy dynamiczne 118
Ćwiczenie 119
Pytania 120

Rozdział 7. Tablice, pętle i pliki 121

Tablice 121
Pętla foreach 123
Wybór elementów z tablicy 123
Tablica jako argument metody 124
Podstawy 124
[Dla dociekliwych] Dwie ciekawostki 125
Sortowanie 126
Liczby losowe 126
Pliki tekstowe 128
Tablice dla typów referencyjnych 132
Inicjacja elementów tablicy 132
Pętla foreach 133
Sortowanie 133
Płytkie i głębokie kopiowanie 134
Ćwiczenia 135
Zabawa dwiema kostkami 135
Agregacja danych 136
Przeszukiwanie zbioru 138
[Dla dociekliwych] Zapowiedź LINQ 140
Sortowanie i mediana 141
[Dla dociekliwych] Histogram 143
Pytania 146
Zadania 146

Rozdział 8. Tropienie błędów 149

Program z błędem logicznym - pole do popisu dla debuggera 149
Kontrolowane uruchamianie aplikacji w Visual Studio 150
Śledzenie wykonywania programu krok po kroku (F10 i F11) 150
Run to Cursor (Ctrl+F10) 152
Punkt przerwania (F9) 152
Okna Automatyczne, Lokalne i Wyrażenie kontrolne 153
Stan wyjątkowy 156
Zgłaszanie wyjątków 156
Przechwytywanie wyjątków w konstrukcji try..catch 158
Wymuszenie kontroli zakresu zmiennych 159

Rozdział 9. Kolekcje i krotki 161

Kolekcje 161
Lista 161
Słowniki 164
Kolejka i stos 165
[Dla dociekliwych] Iterator 166
[Dla dociekliwych] Słowo kluczowe yield 168
Krotki 169
Ćwiczenia 170
Równania kwadratowe 170
Filtrowanie liczb parzystych 172
Tłumaczenie 174
Pytania 177
Zadania 177

[Dla dociekliwych] Rozdział 10. Maszyna Turinga 179

Maszyna Turinga 179
Dodawanie plików tekstowych do projektu 181
Analiza zapisu taśmy 182
Wczytywanie i parsowanie kodu programu 183
Wykonywanie programu 184
Argumenty linii komend 187
Dystrybucja programów 188
Zadania 189

CZĘŚĆ II. PROGRAMOWANIE OBIEKTOWE 191

Rozdział 11. Definiowanie typów 193

Po co definiować własne typy? 193
Pojęcia programowania obiektowego 195
Pola i metody 196
Konstruktor 197
Własności 197
Modyfikatory dostępu 198
Modyfikatory const i readonly 199
Klasa czy struktura? 200
Ćwiczenia 200
Przygotowywanie projektu 201
Konstruktor i statyczne pola 202
Pierwsze testy 204
Konwersje na łańcuch (metoda ToString) i na typ double 205
Nadpisywanie i przeciążanie metod 206
Metoda upraszczająca ułamek 206
Właściwości 208
Domyślnie implementowane właściwości 210
Operatory arytmetyczne 211
Operatory porównania oraz metody Equals i GetHashCode 213
Operatory konwersji 215
[Dla dociekliwych] Różne sposoby definiowania metod 216
[Dla dociekliwych] Operator potęgowania 217
Implementacja interfejsu IComparable<> 218
Pytania 221
Zadania 221

Rozdział 12. Biblioteki DLL 225

Tworzenie zarządzanej biblioteki DLL 226
Dodawanie do aplikacji referencji do biblioteki DLL 229
[Dla dociekliwych] Dynamiczne ładowanie typów 230
[Dla dociekliwych] Pakiet NuGet 231
Pytania 233

Rozdział 13. Testy jednostkowe 235

Projekt testów jednostkowych 236
Przygotowania do tworzenia testów 237
Pierwszy test jednostkowy 237
Uruchamianie testów 239
Dostęp do prywatnych pól testowanej klasy 240
Testowanie wyjątków 242
Kolejne testy weryfikujące otrzymane wartości 243
Test ze złożoną weryfikacją 244
Wielokrotnie powtarzane testy losowe 245
Niepowodzenie testu 246
Nieuniknione błędy 249
Pytania 252
Zadania 253

Rozdział 14. Przykłady I 255

Rozwiązywanie równań kwadratowych 255
Wariant 1. 256
Wariant 2. 259
Wariant 3. 260
Dodatkowa optymalizacja 262
[Dla dociekliwych] Maszyna Turinga 2.0 264
Dwójka 264
Czwórka 266
Program 267
Stan 268
Maszyna 271
Rozruch 272
Wezwanie do refaktoryzacji 274
Statystyka 274
Biblioteka. Interfejs IEnumerable<> 275
Aplikacja 278
Zbiór parametrów statystycznych 280
Zadania 282

Rozdział 15. Miscellanea 283

Rozszerzenia 283
Singleton 285
Klasa statyczna 285
Ukryty konstruktor 286
Leniwa inicjacja 288
Dopasowywanie wzorca 289
[Dla dociekliwych] Zdarzenia 290
[Dla dociekliwych] Typy anonimowe 293
[Dla dociekliwych] Uwaga na temat zwalniania pamięci w klasach 295
Ćwiczenia 298
Rozszerzenia. Dopełnienie imitacji LINQ 298
[Dla dociekliwych] Zdarzenia. Śledzenie zmian 300
Singleton. Rejestrowanie zdarzeń w aplikacji 302
Pytania 305
Zadania 305
[Dla dociekliwych]

Rozdział 16. Typy ogólne 307

Definiowanie typów ogólnych 308
Określanie warunków, jakie mają spełniać parametry 309
Implementacja interfejsów przez typ ogólny 310
Definiowanie aliasów 312
Typy ogólne z wieloma parametrami 312
Kowariancja i kontrawariancja typów 314
Pytania 318

Rozdział 17. Dziedziczenie i polimorfizm 319

Dziedziczenie 319
Klasy bazowe i klasy potomne 319
Kolejność wywoływania konstruktorów 322
Konwersja referencji do klasy bazowej 323
Nadpisywanie a przesłanianie metod 324
Polimorfizm 327
Klasy abstrakcyjne 327
Metody i własności wirtualne 330
Polimorfizm 332
Konstruktory a dziedziczenie raz jeszcze 334
Ćwiczenia 337
Relacje "jest" i "ma" 337
Nadpisywanie i przeciążanie metod 339
Zakres chroniony 340
Pytania 342
Zadania 342

Rozdział 18. Interfejsy 345

Interfejsy jako "wspólny mianownik" 345
Interfejsy a klasy abstrakcyjne 347
Przykład 349
Interfejsy ogólne 350
Pytania 352
Zadania 352

Rozdział 19. Klasa do klasy 353

SOLID 353
Zasada jednej odpowiedzialności 354
Zasada otwarte-zamknięte 357
Zasada podstawienia Liskov 359
Zasada segregacji interfejsów 363
Zasada odwrócenia zależności 365
Krótki komentarz na temat odwrócenia kontroli 368
Programowanie kontraktowe 369
GRASP 369
Zapachy kodu 371

Rozdział 20. Przykłady II 373

Oprogramowanie dla działu kadr 373
Pracownik (liść) 373
Kierownik (gałąź) 374
Cykle 376
Odwiedzający 377
Wyświetlanie 380
Głębokość 381
Rozwiązanie problemu cykli 383
Spłaszczanie drzewa do listy 386
Zalety wzorców projektowych 387
Rozszerzenie parametrów statystycznych 388
Zadania 389

CZĘŚĆ III. DANE W APLIKACJI 391

Rozdział 21. Wzorzec MVC 393

Model 394
Kontroler 397
Widok 404
Stosowanie i wycofywanie zmian 405
Przerost formy nad treścią? 408
Zadania 409

Rozdział 22. Przechowywanie danych w plikach XML 411

Podstawy języka XML 411
Deklaracja 411
Elementy 412
Atrybuty 413
Komentarze 413
LINQ to XML 413
Tworzenie pliku XML za pomocą klas XDocument i XElement 413
Pobieranie wartości z elementów o znanej pozycji w drzewie 417
Pobieranie danych do kolekcji 418
Drzewo i rekurencja 424
Wyświetlanie drzewa w konsoli 426
Zadania 427

Rozdział 23. LINQ 429

Operatory LINQ 429
Pobieranie danych (filtrowanie i sortowanie) 431
Analiza pobranych danych 433
Wybór elementu 433
Weryfikowanie danych 433
Prezentacja w grupach 434
Łączenie zbiorów danych 434
Łączenie danych z różnych źródeł (operator join) 435
Możliwość modyfikacji danych źródła 436
Zapisywanie danych z kolekcji do pliku XML 437
Zadania 439

Rozdział 24. Serializacja do XML i JSON 441

XML 441
JSON 445
Zadanie 450

Rozdział 25. CSV 451

Zapis kolekcji do pliku CSV 451
Kwestia przecinka 453
Odczytywanie danych 454
Uogólnienie 455
Zadania 458

Rozdział 26. OpenXML (.docx) 461

Pakiet NuGet 461
Formatowania 462
Tekst 465
Tworzenie dokumentu 466
Rysunek 471
Tabela 476
Strumień w pamięci 480

Rozdział 27. Entity Framework Core i SQLite 481

Instalacja pakietów NuGet 481
Klasy encji i relacje 482
Baza danych i tabele 484
Dodawanie rekordów do tabeli 486
Wyświetlanie rekordów 488
Usuwanie rekordów 491
Zmienianie danych w rekordzie 494
Pominięte zagadnienia 495
Inne scenariusze 496
Zadania 497

DODATKI 499

Dodatek A. Informacje o systemie 501

Informacje o środowisku aplikacji 501
Podstawowe informacje o systemie i profilu użytkownika 501
Katalogi specjalne zdefiniowane w bieżącym profilu użytkownika 502
Odczytywanie zmiennych środowiskowych 503
Lista dysków logicznych 504

Dodatek B. Elementy programowania współbieżnego 507

Równoległa pętla for 507
Przerywanie pętli 509
Programowanie asynchroniczne. Modyfikator async i operator await 510
Zadania 517

Dodatek C. Git. Wersjonowanie i kopie bezpieczeństwa kodu źródłowego 519

Systemy kontroli wersji kodu źródłowego 519
Serwisy Git 521
Tworzenie projektu 523
Tworzenie nowej gałęzi 529
Wprowadzanie zmian w projekcie 529
Zatwierdzanie zmian 531
Wypychanie do repozytorium 531
Klonowanie projektu 533
Rozwiązywanie konfliktów (scalanie) 535
Scalanie gałęzi 541
Przywracanie wcześniejszej wersji projektu 544
O czym nie musimy wiedzieć, korzystając z Git w Visual Studio? 547

Dodatek D. Co nowego w C# 9.0? 549

Nowa inicjacja własności 549
Rekordy 553
Zmiany w instrukcji switch 558
Polecenia najwyższego poziomu 559

560 stron, 17.0x23.0cm, oprawa miękka

Po otrzymaniu zamówienia poinformujemy,
czy wybrany tytuł polskojęzyczny lub anglojęzyczny jest aktualnie na półce księgarni.

 
Wszelkie prawa zastrzeżone PROPRESS sp. z o.o. 2012-2022