Деталі електронної книги

C#. Rusz głową! Wydanie V

C#. Rusz głową! Wydanie V

Andrew Stellman, Jennifer Greene

Eлектронна книга

UWAGA! Podręcznik przyjazny dla mózgu!

C# ma ugruntowaną pozycję jednego z najważniejszych języków programowania. Nowoczesny, wszechstronny i dojrzały, a do tego sukcesywnie rozwijany, zapewnia efektywne tworzenie kodu o wysokiej jakości. Nic nie stoi na przeszkodzie, aby C# stał się Twoim pierwszym językiem programowania i przy okazji pozwolił Ci się świetnie bawić!

Wielkie dzięki! Wasze książki pomogły mi w rozpoczęciu kariery!

Ryan White, programista gier

Ta książka, podobnie jak inne pozycje z serii Rusz głową!, została przygotowana zgodnie z najnowszymi odkryciami nauk poznawczych, teorii uczenia się i neurofizjologii. W praktyce oznacza to, że dzięki niej zaangażujesz swój mózg, użyjesz wielu zmysłów i niepostrzeżenie przyswoisz język C# i umiejętność pracy w Visual Studio. Dowiesz się, jak pisać gry 3D w Unity i korzystać z LINQ. A to wszystko dzięki łamigłówkom, ćwiczeniom i tworzeniu rzeczywistych aplikacji. Intuicyjnie zrozumiesz ważne techniki i zagadnienia programistyczne. Nie musisz mieć doświadczenia - tylko chęć do nauki!

Zwięzłe, rzetelne i - przede wszystkim - ciekawe wprowadzenie do programowania w C#!

Jon Galloway, Microsoft

Latarnia geniuszu! Przekazuje wiedzę, pobudza ciekawość i podsyca pasję do programowania!

Gerald Versluis, Microsoft

Wprowadzenie
  • Dla kogo przeznaczona jest ta książka?
  • Wiemy, co sobie myślisz
  • Metapoznanie
  • Oto co możesz zrobić, aby zmusić swój mózg do posłuszeństwa
  • Przeczytaj to
  • Zespół redaktorów merytorycznych
  • Podziękowania

1. Zacznij pisać programy w języku C#. Zbuduj coś wspaniałego. szybko!

  • Poznaj C#. i dowiedz się, jak zostać świetnym programistą
  • Pisz kod i poznawaj C# z Visual Studio
  • Instalowanie Visual Studio Community Edition
  • Uruchamianie Visual Studio
  • Utwórz i uruchom pierwszy projekt C# w Visual Studio
  • W trakcie lektury C#. Rusz głową możesz używać Visual Studio Code
  • Tworzenie i uruchamianie pierwszego projektu w Visual Studio Code
  • Konfigurowanie Visual Studio Code na potrzeby następnego projektu
  • Napiszmy grę!
  • Tworzenie projektu .NET MAUI w Visual Studio
  • Uruchamianie nowej aplikacji .NET MAUI
  • Aplikacje MAUI działają na wszystkich urządzeniach
  • Rozpocznij edycję kodu XAML
  • Użyj układu FlexLayout, aby utworzyć siatkę przycisków ze zwierzętami
  • Napisz kod C#, aby dodać zwierzęta do przycisków
  • Uruchom aplikację!
  • Visual Studio ułatwia korzystanie z systemu Git
  • Dodaj kod C# do obsługi kliknięć myszą
  • Dodaj zegar do kodu gry
  • Dokończ kod gry

2. Zmienne, instrukcje i metody. Zanurz się w kod C#

  • Przyjrzyj się plikom aplikacji konsolowej
  • Instrukcje są cegiełkami do tworzenia aplikacji
  • Instrukcje znajdują się w metodach
  • Metody używają zmiennych do pracy z danymi
  • Generowanie nowej metody używającej zmiennych
  • Dodaj do metody kod używający operatorów
  • Używanie debugera do obserwowania zmian zmiennych
  • Używanie fragmentów kodu do pisania pętli
  • Używanie operatorów do pracy ze zmiennymi
  • Instrukcje if służą do podejmowania decyzji
  • Pętle powtarzają wykonywanie operacji
  • Mechanika interfejsów użytkownika zależy od kontrolek
  • Inne kontrolki, których będziesz używać w tej książce
  • Utwórz nową aplikację do eksperymentów z kontrolkami
  • Zapoznaj się z nową aplikacją MAUI i zobacz, jak działa
  • Dodaj do aplikacji kontrolkę Entry
  • Dodaj właściwości do kontrolki Entry
  • Spraw, aby kontrolka Entry aktualizowała kontrolkę Label
  • Łączenie układów poziomych i pionowych
  • Dodaj kontrolkę Picker do wyświetlania listy pozycji do wyboru

Ćwiczenia z Unity nr 1. Poznawaj C# z Unity

  • Unity jest rozbudowanym narzędziem do projektowania gier
  • Pobieranie Unity Hub
  • Używanie Unity Hub do tworzenia nowego projektu
  • Przejmij kontrolę nad układem Unity
  • Sceną jest środowisko 3D
  • Gry Unity są tworzoneza pomocą obiektów gry (GameObject)
  • Używanie narzędzia przenoszeniado przesuwania obiektów gry
  • Okno Inspector wyświetla komponenty obiektów gry
  • Określ materiał kuli
  • Obracanie kuli
  • Bądź kreatywny!

3. Przestrzenie nazw i klasy. Organizowanie kodu

  • Klasy pomagają organizować kod
  • Niektóre metody przyjmują parametry i zwracają wartość
  • Napisz program, który wybiera losowe karty
  • Tworzenie aplikacji z metodą Main
  • Użyj szybkich akcji, aby usunąć niepotrzebne wiersze ze słowem using
  • Zmiana stylu zapisu przestrzeni nazw
  • Używanie słowa kluczowego new do tworzenia tablicy łańcuchów znaków
  • Przygotuj papierowy prototyp klasycznej gry
  • Zbuduj wersję MAUI aplikacji do wybierania losowych kart
  • Ponownie wykorzystaj klasę CardPicker
  • Dodawanie dyrektywy using w celu użycia kodu z innej przestrzeni nazw
  • Klasa służy do tworzenia obiektów
  • Lepsze rozwiązanie dla Ani - wszystko dzięki obiektom
  • Instancja używa pól do śledzenia stanu
  • Używaj zrozumiałych nazw klas i metod
  • Zbuduj klasę reprezentującą ludzi
  • Użyj okna C# Interactive lub csi do uruchamiania kodu C#

4. Dane, typy, obiekty i referencje. Zarządzanie danymi aplikacji

  • Typ zmiennej określa, jakiego rodzaju dane może ona przechowywać
  • C# udostępnia kilka typów do przechowywania liczb całkowitych
  • Porozmawiajmy o łańcuchach znaków
  • Literał to wartość bezpośrednio zapisana w kodzie
  • Rzutowanie umożliwia kopiowanie wartości, których C# nie potrafi automatycznie przekształcić na inny typ
  • C# niektóre konwersje przeprowadza automatycznie
  • Używaj zmiennych referencyjnych, aby uzyskać dostęp do obiektów
  • Referencje przypominają karteczki samoprzylepne na obiektach
  • Wiele referencji i ich efekty uboczne
  • Dwie referencje oznaczają DWIE zmienne, które mogą modyfikować dane tego samego obiektu
  • Obiekty komunikują się między sobą za pomocą referencji
  • Tablice przechowują wiele wartości
  • null oznacza referencję, która nic nie wskazuje
  • Gdy łańcuch znaków może mieć wartość null, użyj typu string?
  • Witaj w Budżetowych Kanapkach Jarka Niechluja!
  • Kontrolka Grid
  • Utwórz aplikację do generowania menu dla Jarka Niechluja i przygotuj siatkę
  • Użyj metody SetValue do zmiany właściwości semantycznych kontrolki

Ćwiczenia z Unity nr 2. Pisanie kodu C# w Unity

  • Skrypty C# odpowiadają za działanie obiektów gry
  • Dodaj skrypt C# do obiektu gry
  • Napisz kod C# do rotowania kuli
  • Dodaj punkt przerwania i zdebuguj grę
  • Użyj debugera, aby zrozumieć działanie wartości Time.deltaTime
  • Dodaj walec, aby zobaczyć, gdzie znajduje się oś Y
  • Dodaj do klasy pola określające kąt i szybkość rotacji
  • Użyj wywołania Debug.DrawRay, aby zbadać działanie wektorów trójwymiarowych
  • Uruchom grę, aby zobaczyć promień w widoku Scene
  • Rotowanie bili względem punktu sceny
  • Użyj Unity, aby przyjrzeć się rotacji i wektorom
  • Bądź kreatywny!

5. Hermetyzacja. O tym, jak obiekty strzegą swoich tajemnic

  • Pomóż Oskarowi w definiowaniu rzutów obrażeń
  • Napisz aplikację konsolową do obliczania obrażeń
  • Zaprojektuj wersję MAUI aplikacji z kalkulatorem obrażeń
  • Użyj metody Debug.WriteLine do wyświetlania informacji diagnostycznych
  • Prywatne pola i metody są dostępne tylko w instancjach tej samej klasy
  • Po co jest hermetyzacja? Potraktuj obiekt jak czarną skrzynkę.
  • Zastosuj hermetyzację, aby ulepszyć klasę SwordDamage
  • Napisz aplikację konsolową do testowania klasy PaintballGun
  • Automatycznie implementowane właściwości upraszczają kod
  • Użyj prywatnego settera, aby utworzyć właściwość tylko do odczytu
  • Do inicjowania właściwości użyj konstruktora z parametrami
  • Podaj argumenty, gdy używasz słowa kluczowego new
  • Inicjowanie pól i właściwości wewnątrzwierszowo lub w konstruktorze

6. Dziedziczenie. Drzewo genealogiczne obiektów

  • Użyj instrukcji switch do dopasowywania wartości
  • Zastosowanie dziedziczenia pozwala napisać kod tylko raz
  • Jak zaprojektujesz symulator zoo?
  • W każdym miejscu, w którym możesz użyć klasy bazowej, możesz też użyć jednej z jej podklas
  • W podklasie można przesłaniać metody, aby modyfikować lub zastępować odziedziczone składowe
  • Zbuduj aplikację, aby lepiej poznać słowa kluczowe virtual i override
  • Podklasa może ukrywać metody z klasy bazowej
  • Używaj słów kluczowych override i virtual do dziedziczenia operacji
  • Klasa powinna robić jedną rzecz
  • Zbuduj system zarządzania rojem pszczół
  • Sprzężenie zwrotne wpływa na grę w zarządzanie rojem
  • System zarządzania rojem działa turowo; teraz przekształć go na system czasu rzeczywistego
  • Klasy abstrakcyjne celowo są niekompletne
  • Właściwości abstrakcyjne działają tak jak metody abstrakcyjne
  • Piekielny diament śmierci!

Ćwiczenia z Unity nr 3. Instancje obiektów gry

  • Zbudujmy grę w Unity!
  • Utwórz nowy materiał w katalogu Materials
  • Wygeneruj bilę w losowym punkcie sceny
  • Użyj debugera, aby zrozumieć wywołanie Random.value
  • Przekształć obiekt gry w obiekt prefab
  • Utwórz skrypt do sterowania grą
  • Dołącz skrypt do głównej kamery
  • Wciśnij Play, aby uruchomić kod
  • Użyj okna Inspector do pracy z instancjami obiektów gry
  • Wykorzystaj silnik fizyki, aby uniknąć pokrywania się bil
  • Bądź kreatywny!

7. Interfejsy, rzutowanie i instrukcja "is". Spełnianie obietnic przez klasy

  • Rój został zaatakowany!
  • Można zastosować rzutowanie, aby wywołać metodę DefendHive.
  • Interfejs definiuje metody i właściwości, jakie klasa musi implementować.
  • Interfejsy umożliwiają wykonywanie tego samego zadania niepowiązanym klasom
  • Nabierz wprawy w używaniu interfejsów
  • Nie możesz utworzyć obiektu typu interfejsu, ale możesz utworzyć referencję do interfejsu
  • Referencje typów interfejsowych są zwykłymi referencjami do obiektów
  • RoboPszczoła 4000 potrafi wykonywać pracę robotnic bez zużywania cennego miodu
  • Co zrobić, jeśli inne zwierzęta też mają pływać lub polować w stadzie?
  • Używaj interfejsów do pracy z klasami, które wykonują to samo zadanie
  • Bezpiecznie poruszaj się po hierarchii klas za pomocą instrukcji "is"
  • C# udostępnia też inne narzędzie do bezpiecznej konwersji typów: słowo kluczowe "as"
  • Stosuj rzutowanie w górę i w dół, aby poruszać się po hierarchii klas
  • Rzutowanie w górę i w dół działa także dla interfejsów
  • Domyślne implementacje zawierają ciało metod interfejsów
  • Wiązanie danych powoduje automatyczną aktualizację kontrolek MAUI
  • Polimorfizm oznacza, że jeden obiekt może przyjmować wiele różnych postaci

8. Wyliczenia i kolekcje. Porządkowanie danych

  • Jeśli konstruktor tylko ustawia pola, użyj w zamian konstruktora głównego
  • Konstruktor główny może rozszerzać konstruktor bazowy
  • Wyliczenia umożliwiają pracę ze zbiorem poprawnych wartości
  • Wyliczenia umożliwiają reprezentowanie liczb za pomocą nazw
  • Listy umożliwiają łatwe przechowywanie kolekcji czegokolwiek
  • Utwórzmy aplikację do przechowywania butów
  • Generyczne kolekcje mogą przechowywać wartości dowolnego typu
  • Do tworzenia list możesz użyć wyrażenia kolekcji
  • Interfejs IComparable<Duck> pomaga liście sortować kaczki
  • Utwórz obiekt komparatora
  • Komparatory potrafią wykonywać skomplikowane porównania
  • Możesz zrzutować w górę całą listę, używając interfejsu IEnumerable<T>
  • Przegląd możliwości słowników
  • CollectionView to kontrolka MAUI przeznaczona do wyświetlania kolekcji
  • ObservableCollection to kolekcja stworzona do wiązania danych
  • Użyj kodu XAML do utworzenia obiektów na potrzeby wiązania danych
  • Zmodyfikuj aplikację, aby używała słownika zasobów
  • Zmodyfikuj metody obsługi zdarzeń, aby korzystały ze słownika zasobów
  • Wykorzystaj zdobytą wiedzę do zbudowania aplikacji z dwiema taliami

Ćwiczenia z Unity nr 4. Interfejsy użytkownika

  • Dodaj wynik zwiększany po kliknięciu bili przez gracza
  • Dodaj dwa różne tryby gry
  • Dodaj tryb gry
  • Dodaj interfejs użytkownika do gry
  • Skonfiguruj obiekt Text wyświetlający wynik w interfejsie użytkownika
  • Dodaj przycisk, który wywołuje metodę uruchamiającą grę
  • Dodaj kod obsługi przycisku Zagraj ponownie i pola z wynikiem
  • Dokończ kod gry
  • Dokończ kod gry

9. LINQ i lambdy. Kontroluj swoje dane

  • Jacek jest wielkim fanem Kapitana Wspaniałego
  • Użyj technologii LINQ do pisania kwerend dotyczących kolekcji
  • Użyj kwerendy LINQ do ukończenia aplikacji dla Jacka
  • Słowo kluczowe var powoduje, że C# wywnioskowuje typy zmiennych
  • Technologia LINQ jest wszechstronna
  • Użyj kwerendy grupującej do rozdzielenia sekwencji na grupy
  • Użyj kwerend złączających do scalania danych z dwóch sekwencji
  • Użyj słowa kluczowego new do utworzenia typu anonimowego
  • Testy jednostkowe pomagają zagwarantować, że kod działa
  • Zacznij pisać pierwszą metodę testową
  • Jeden projekt może uzyskać dostęp tylko do klas publicznych w innym projekcie
  • Zastosuj wzorzec Arrange-Act-Assert do napisania skutecznego testu
  • Napisz test jednostkowy metody GetReviews
  • Użyj operatora => do tworzenia wyrażeń lambda
  • Użyj operatora ?: do podejmowania decyzji w lambdach
  • Kwerendy LINQ składają się z metod
  • Deklaratywne kwerendy LINQ można zrefaktoryzować do postaci łańcucha metod
  • Użyj operatora => do tworzenia wyrażeń switch
  • Omówienie klasy Enumerable
  • Użyj instrukcji yield return do tworzenia własnych sekwencji

10. Odczyt i zapis plików. Zachowaj dla mnie ostatni bajt

  • W .NET do odczytu i zapisu danych używane są strumienie
  • Różne strumienie wczytują i zapisują różne dane
  • Użyj klasy StreamReader do odczytu pliku
  • Używanie statycznych klas File i Directory do pracy z plikami i katalogami
  • IDisposable gwarantuje, że obiekty zostaną poprawnie zamknięte
  • Unikaj błędów systemu plików dzięki instrukcjom using
  • Użyj klasy MemoryStream do strumieniowania danych do pamięci
  • Co się dzieje z obiektem w czasie serializacji?
  • Użyj klasy JsonSerializer do serializacji obiektów
  • Format JSON obejmuje tylko dane, a nie specyficzne typy języka C#
  • Łańcuchy znaków w C# są kodowane w formacie Unicode
  • Platforma .NET używa formatu Unicode do przechowywania znaków i tekstu
  • C# może wykorzystać tablice bajtów do przenoszenia danych
  • Użyj klasy BinaryWriter do zapisu danych binarnych
  • Użyj klasy BinaryReader do wczytania danych
  • Użyj klasy StreamReader do opracowania przeglądarki danych szesnastkowych
  • Użyj metody Stream.Read do wczytania bajtów ze strumienia
  • Zmodyfikuj przeglądarkę danych szesnastkowych, aby wczytywała dane bezpośrednio ze strumienia
  • Uruchamianie aplikacji w wierszu poleceń

Ćwiczenia z Unity nr 5. Ray casting

  • Utwórz nowy projekt w Unity i zacznij przygotowywać scenę
  • Przygotuj kamerę
  • Utwórz obiekt gry reprezentujący gracza
  • Wprowadzenie do systemu nawigowania w Unity
  • Instalowanie pakietu AI Navigation
  • Czynności związane z nawigowaniem
  • Przygotowanie siatki nawigacyjnej
  • Spraw, aby postać automatycznie poruszała się po obszarze gry

11. Kapitan Wspaniały. Śmierć obiektu

  • Życie i śmierć obiektu
  • Używaj (ostrożnie) klasy GC do wymuszania odśmiecania pamięci
  • Finalizator obiektu - Twoja ostatnia szansa, by coś ZROBIĆ
  • Kiedy DOKŁADNIE uruchamiany jest finalizator?
  • Finalizatory nie mogą zależeć od innych obiektów
  • Struktura wygląda jak obiekt.
  • Wartości są kopiowane; referencje są przypisywane
  • Struktury są typami bezpośrednimi; klasy są typami referencyjnymi
  • Stos a sterta - więcej o pamięci
  • Używaj parametrów out, aby zwrócić z metody więcej niż jedną wartość
  • Przekazywanie przez referencję z użyciem modyfikatora ref
  • Używaj parametrów opcjonalnych do podawania wartości domyślnych
  • Referencja null nie wskazuje żadnego obiektu
  • Typy referencyjne niedopuszczające null pomagają unikać wyjątków NRE
  • Typy bezpośrednie dopuszczające null mogą się równać null i być bezpiecznie obsługiwane
  • Operator ?? automatycznie wykrywa wartości null
  • Kapitan Wspaniały - ale nie do końca
  • Rekordy automatycznie umożliwiają sprawdzanie równości wartości obiektów
  • Nie modyfikuj rekordów - kopiuj je
  • Metody rozszerzające dodają nowe operacje do ISTNIEJĄCYCH klas
  • Rozszerzanie typu podstawowego - string

12. Obsługa wyjątków. Gaszenie pożarów robi się nudne

  • Przeglądarka danych szesnastkowych wczytuje nazwę pliku z wiersza poleceń
  • Gdy program zgłasza wyjątek, CLR generuje obiekt wyjątku
  • Wszystkie obiekty wyjątków dziedziczą po klasie System.Exception
  • Istnieją pliki, które nie umożliwiają wykonania zrzutu szesnastkowego
  • Co się dzieje, gdy wywoływana metoda jest ryzykowna?
  • Obsługa wyjątków za pomocą bloków try-catch
  • Użyj debugera do prześledzenia przepływu sterowania w bloku try-catch
  • Ogólny blok catch obsługuje wyjątki typu System.Exception
  • Używaj wyjątku odpowiedniego do sytuacji
  • Filtry wyjątków pomagają tworzyć precyzyjne bloki do ich obsługi
  • Najgorszy blok catch W HISTORII - ogólny blok catch z komentarzami
  • Tymczasowe rozwiązania są akceptowalne (tymczasowo)
  • Użyj systemu NuGet, aby dodać do aplikacji bibliotekę do rejestrowania dzienników
  • Dodaj rejestrowanie dzienników do aplikacji ExceptionExperiment

Ćwiczenia z Unity nr 6. Nawigowanie po scenie

  • Zacznijmy od miejsca, w którym zakończyliśmy poprzednie ćwiczenia z Unity
  • Dodaj platformę do sceny
  • Użyj opcji wstępnego obliczania, aby umożliwić chodzenie po platformie
  • Dodaj schody i rampę do siatki nawigacyjnej
  • Spraw, by gracz omijał przeszkody
  • Bądź kreatywny!

Skorowidz

  • Назва: C#. Rusz głową! Wydanie V
  • Автор: Andrew Stellman, Jennifer Greene
  • Оригінальна назва: Head First C#: A Learner's Guide to Real-World Programming with C# and .NET Core, 5th Edition
  • Переклад: Tomasz Walczak
  • ISBN: 978-83-289-2114-6, 9788328921146
  • Дата видання: 2025-08-13
  • Формат: Eлектронна книга
  • Ідентифікатор видання: cshru5
  • Видавець: Helion