C#. Rusz g - Helion

Tytuł oryginału: Head First C#: A Learner's Guide to Real-World Programming with C# and .NET Core, 5th Edition
Tłumaczenie: Tomasz Walczak
ISBN: 978-83-289-2113-9
stron: 792, Format: 200x225, okładka: mi
Księgarnia: Helion
Książka będzie dostępna od grudnia 2024
UWAGA! Podr
Zobacz 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%)
- Platforma Xamarin. Kurs video. Poziom drugi. Zaawansowane techniki tworzenia aplikacji cross-platform 99,00 zł, (39,60 zł -60%)
- Język C# w praktyce. Kurs video. Przetwarzanie danych zewnętrznych 99,00 zł, (44,55 zł -55%)
- Programowanie asynchroniczne i równoległe w C#. Kurs video. Poziom podstawowy 69,00 zł, (31,05 zł -55%)
Spis treści
C#. Rusz głową! Wydanie V -- spis treści
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