C# 7.0. Kompletny przewodnik dla praktyków. Wydanie VI
- Autor:
- Mark Michaelis
- Promocja Przejdź
- Wydawnictwo:
- Helion
- Ocena:
- 5.5/6 Opinie: 6
- Stron:
- 840
- Druk:
- oprawa twarda
- Dostępne formaty:
-
PDFePubMobi
Sprawdź nowe wydanie
C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII
Mark Michaelis
Opis książki: C# 7.0. Kompletny przewodnik dla praktyków. Wydanie VI
C# jest jednym z lepiej dopracowanych języków programowania. Cechują go dojrzałość, prostota, nowoczesność i bezpieczeństwo. Został od podstaw zaprojektowany jako obiektowy. Stanowi integralną część platformy Microsoft .NET Framework. Jest ulubionym narzędziem profesjonalnych programistów, którym zależy na pisaniu kodu bezpiecznego, przejrzystego, wydajnego i prostego w konserwacji. W wersji 7.0 tego języka pojawiły się nowe usprawnienia, dzięki którym programowanie stało się jeszcze bardziej efektywne i satysfakcjonujące.
Ta książka jest szóstym, zaktualizowanym i uzupełnionym wydaniem jednego z najlepszych podręczników programowania. Poza znakomitym kompendium języka C# znalazły się tu informacje o poszczególnych metodykach programowania, od sekwencyjnego aż po podstawy programowania deklaratywnego z wykorzystaniem atrybutów. Szczegółowo przedstawiono funkcje wprowadzone do wersji 7.0 języka, a także w platformie .NET Framework 4.7/.NET Core 2.0. Książka jest też wygodnym źródłem wiedzy o pewnych rzadko stosowanych konstrukcjach składniowych, specyficznych szczegółach i subtelnościach języka C#. Jasny i przejrzysty sposób prezentowania treści pozwoli na szybkie zrozumienie nawet najbardziej zawiłych zagadnień.
W tej książce między innymi:
- przewodnik po C# oraz różne paradygmaty programowania
- interfejsy, dziedziczenie, typy bezpośrednie
- obsługa wyjątków
- delegaty, technologia LINQ i mechanizm refleksji
- zarządzanie wątkami i programowanie asynchroniczne
C#. Nowoczesny, elegancki, bezpieczny!
Wybrane bestsellery
-
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ów...
C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII
(0,00 zł najniższa cena z 30 dni)89.40 zł
149.00 zł(-40%) -
Niniejsza książka to bardzo praktyczne kompendium wiedzy o języku C#. Została oparta na podstawowej specyfikacji C# Language 6.0. Zawiera kompletne omówienie języka. Książkę pomyślano jako podręcznik, dzięki któremu szybko można rozpocząć praktyczną pracę nad projektami programistycznymi. Osoby z...
C# 6.0. Kompletny przewodnik dla praktyków. Wydanie V C# 6.0. Kompletny przewodnik dla praktyków. Wydanie V
(0,00 zł najniższa cena z 30 dni)77.40 zł
129.00 zł(-40%) -
Po przyswojeniu zagadnień związanych z językiem C# i aplikacjami konsoli dowiesz się, jak tworzyć praktyczne aplikacje i usługi z wykorzystaniem biblioteki ASP.NET Core, a także wzorzec MVC i technologię Blazor. Zapoznasz się z metodami stosowania wielozadaniowości do poprawy wydajności i skalowa...
C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI
(0,00 zł najniższa cena z 30 dni)95.40 zł
159.00 zł(-40%) -
To kolejne, przejrzane i zaktualizowane wydanie doskonałego podręcznika dla programistów. Znalazły się tu zwięzłe i dokładne informacje na temat języka C#, Common Language Runtime (CLR) oraz platformy .NET Core. Zaprezentowano precyzyjne opisy pojęć i konkretne przypadki użycia, a poszczególne za...(0,00 zł najniższa cena z 30 dni)
74.50 zł
149.00 zł(-50%) -
Ta książka ma pełnić funkcję użytecznej ściągawki zawierającej wszystko, co potrzebne do pracy z C#. Została pomyślana tak, aby maksymalnie ułatwić przeglądanie i odnajdywanie potrzebnych treści — i tym samym wesprzeć pracę każdego, komu zależy na sprawnym pisaniu kodu w języku C#. Jest też...(0,00 zł najniższa cena z 30 dni)
29.94 zł
49.90 zł(-40%) -
Ta książka jest praktycznym wprowadzeniem do tworzenia gier 2D w Unity. Dokładnie wyjaśniono w niej filozofię działania tego środowiska i zasady projektowania gier korzystających z silnika Unity. Starannie opisano takie zagadnienia jak arkusze duszków, dzielone kafelki i mapa kafelków. Omówiono r...
Jak pisać świetne gry 2D w Unity. Niezależne programowanie w języku C# Jak pisać świetne gry 2D w Unity. Niezależne programowanie w języku C#
(0,00 zł najniższa cena z 30 dni)35.40 zł
59.00 zł(-40%) -
Unity jest zaawansowanym środowiskiem przeznaczonym do tworzenia gier 3D. Równocześnie może stanowić początek wspaniałej przygody z C#, który jest nowoczesnym i wszechstronnym językiem programowania. Taka ścieżka nauki pozwala na uniknięcie niezrozumiałego dla początkujących żargonu czy niejasnej...
Stwórz grę w Unity, a nauczysz się programowania w C#! Pisanie kodu, które sprawia radość. Wydanie V Stwórz grę w Unity, a nauczysz się programowania w C#! Pisanie kodu, które sprawia radość. Wydanie V
(0,00 zł najniższa cena z 30 dni)34.50 zł
69.00 zł(-50%) -
C# jest dziś uważany za jeden z najważniejszych języków programowania. Nowoczesny, wszechstronny, dojrzały i sukcesywnie rozwijany, zapewnia efektywne tworzenie kodu wysokiej jakości. Profesjonalni programiści, którzy pisali już kod w C++ lub Javie, bardzo często wybierają właśnie C#. Nic nie sto...(0,00 zł najniższa cena z 30 dni)
77.40 zł
129.00 zł(-40%) -
Język C# cechują dojrzałość, prostota i nowoczesność. Służy on do wielu celów: do tworzenia aplikacji sieciowych, aplikacji działających w chmurze, oprogramowania dla urządzeń mobilnych i internetu rzeczy. Choć pozwala na pisanie kodu bezpiecznego, przejrzystego, wydajnego i prostego w konserwacj...
Czysty kod w C#. Techniki refaktoryzacji i najlepsze praktyki Czysty kod w C#. Techniki refaktoryzacji i najlepsze praktyki
(0,00 zł najniższa cena z 30 dni)53.40 zł
89.00 zł(-40%) -
C# - wieloparadygmatowy język programowania opracowany przez firmę Microsoft - z roku na rok zdobywa coraz większą popularność wśród profesjonalistów z branży IT. Przejrzysta struktura kodu, wygoda stosowania, potężne możliwości i wsparcie ze strony platformy .NET - wszystko to sprawia, że są duż...
C#. Zadania z programowania z przykładowymi rozwiązaniami. Wydanie III C#. Zadania z programowania z przykładowymi rozwiązaniami. Wydanie III
(0,00 zł najniższa cena z 30 dni)26.94 zł
44.90 zł(-40%)
O autorze książki
1 Mark MichaelisMark Michaelis jest autorytetem w dziedzinie tworzenia zaawansowanego oprogramowania. Zabiera głos na prestiżowych konferencjach dla programistów. Obecnie prowadzi kolumnę Essential .NET w „MSDN Magazine”. Od 1996 roku posiada tytuł Microsoft MVP. W 2007 roku został dyrektorem regionalnym Microsoftu, jest też członkiem kilku zespołów oceniających projekty oprogramowania tej firmy (między innymi języka C# i technologii VSTS).
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Szczegóły książki
- Tytuł oryginału:
- Essential C# 7.0 (6th Edition)
- Tłumaczenie:
- Tomasz Walczak
- ISBN Książki drukowanej:
- 978-83-283-5780-8, 9788328357808
- Data wydania książki drukowanej:
- 2019-11-19
- ISBN Ebooka:
- 978-83-283-5781-5, 9788328357815
- Data wydania ebooka:
-
2019-11-19
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@helion.pl.
- Format:
- 164x239
- Numer z katalogu:
- 94415
- Rozmiar pliku Pdf:
- 6.7MB
- Rozmiar pliku ePub:
- 7.2MB
- Rozmiar pliku Mobi:
- 18.0MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
- Erraty / Zgłoś erratę
- Kategorie:
Programowanie » C# - Programowanie
Spis treści książki
- Przedmowa
- Wprowadzenie
- Dla kogo przeznaczona jest ta książka?
- Cechy tej książki
- Wskazówki dotyczące pisania kodu w języku C#
- Przykładowy kod
- Mapy myśli
- Pomocne uwagi
- Struktura książki
- Podziękowania
- O autorze
- O redaktorze technicznym
- 1. Wprowadzenie do języka C#
- Witaj, świecie
- Tworzenie, edytowanie, kompilowanie i uruchamianie kodu źródłowego w języku C#
- Używanie narzędzia Dotnet CLI
- Używanie środowiska Visual Studio 2017
- Tworzenie, edytowanie, kompilowanie i uruchamianie kodu źródłowego w języku C#
- Tworzenie projektu
- Kompilowanie i wykonywanie kodu
- Kod źródłowy do książki C# 7.0
- Używanie Dotnet CLI
- Używanie Visual Studio
- Witaj, świecie
- Podstawy składni języka C#
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Słowa kluczowe
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Słowa kluczowe języka C#
- Identyfikatory
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Słowa kluczowe
- Definicja typu
- Metoda Main
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Czym jest metoda
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Deklaracja metody Main
- Instrukcje i ograniczniki instrukcji
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Instrukcje bez średników
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Czym są odstępy?
- Odstępy
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Formatowanie kodu za pomocą odstępów
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Korzystanie ze zmiennych
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Zmienne lokalne
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Typy danych
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Czym jest typ danych?
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Deklarowanie zmiennej
- Przypisywanie wartości do zmiennej
- Korzystanie ze zmiennej
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wartość łańcuchów znaków jest niezmienna
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Dane wejściowe i wyjściowe w konsoli
- Pobieranie danych wejściowych z konsoli
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Metoda System.Console.Read()
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Pobieranie danych wejściowych z konsoli
- Wyświetlanie danych wyjściowych w konsoli
- Komentarze
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- XML
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Wykonywanie kodu w środowisku zarządzanym i platforma CLI
- Język CIL i narzędzie ILDASM
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Dane wyjściowe w języku CIL z programu HelloWorld.exe
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Język CIL i narzędzie ILDASM
- Różne wersje platformy .NET
- Interfejsy API
- Wersje języka C# i platformy .NET
- .NET Standard
- Podsumowanie
- 2. Typy danych
- Podstawowe typy liczbowe
- Typy całkowitoliczbowe
- Typy zmiennoprzecinkowe (float i double)
- Typ decimal
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Analiza typów zmiennoprzecinkowych
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Literały liczbowe
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Zachowaj ostrożność, gdy zapisujesz wartości na sztywno
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Notacja szesnastkowa
- Podstawowe typy liczbowe
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wyświetlanie liczb w formacie szesnastkowym
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Formatowanie dwustronne
- Inne podstawowe typy
- Typ logiczny (bool)
- Typ znakowy (char)
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Standard Unicode
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- 16 bitów nie wystarcza do przedstawienia wszystkich znaków Unicode
- Łańcuchy znaków
- Literały
- Interpolacja łańcuchów znaków
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wewnętrzne mechanizmy interpolacji łańcuchów znaków
- Metody dla typu string
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Dyrektywy using i using static
- Formatowanie łańcuchów znaków
- Nowy wiersz
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Właściwości w języku C#
- Długość łańcuchów znaków
- Łańcuchy znaków są niezmienne
- Typ System.Text.StringBuilder
- Wartości null i void
- Słowo kluczowe null
- Typ void
- Konwersje typów danych
- Jawne rzutowanie
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Konwersje kontrolowane i niekontrolowane
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Konwersja niejawna
- Jawne rzutowanie
- Konwersja typów bez rzutowania
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Metoda TryParse()
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Podsumowanie
- 3. Jeszcze o typach danych
- Kategorie typów
- Typy bezpośrednie
- Typy referencyjne
- Kategorie typów
- Modyfikator umożliwiający stosowanie wartości null
- Zmienne lokalne z niejawnie określanym typem danych
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Typy anonimowe
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Zmienne lokalne z niejawnie określanym typem danych
- Krotki
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Typ System.ValueTuple<>
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Tablice
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Tablice
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Deklarowanie tablicy
- Tworzenie instancji tablic i przypisywanie do nich wartości
- Korzystanie z tablicy
- Długość
- Inne metody dla tablic
- Metody instancyjne tablicy
- Łańcuchy znaków jako tablice
- Typowe błędy związane z tablicami
- Podsumowanie
- Operatory i przepływ sterowania
- Operatory
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Operatory
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Operatory jednoargumentowe plus (+) i minus ()
- Arytmetyczne operatory dwuargumentowe (+, , *, /, %)
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Nawiasy, łączność, priorytety i określanie wartości
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Używanie operatora dodawania dla łańcuchów znaków
- Używanie znaków w operacjach arytmetycznych
- Wyjątkowe cechy typów zmiennoprzecinkowych
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Nieoczekiwane nierówności wartości typów zmiennoprzecinkowych
- Operatory
- Złożone operatory przypisania (+=, =, *=, /=, %=)
- Operatory inkrementacji i dekrementacji (++, )
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Przykładowa dekrementacja w pętli
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Inkrementacja i dekrementacja bezpieczna ze względu na wątki
- Wyrażenia o stałej wartości i stałe lokalne
- Zarządzanie przepływem sterowania
- Instrukcja if
- Zagnieżdżone instrukcje if
- Bloki kodu ({})
- Bloki kodu, zasięgi i przestrzenie deklaracji
- Wyrażenia logiczne
- Operatory relacyjne i równości
- Operatory logiczne
- Operator OR (||)
- Operator AND (&&)
- Operator XOR (^)
- Logiczny operator negacji (!)
- Operator warunkowy (?:)
- Operator ??
- Operator ?.
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Stosowanie operatora ?. razem z delegatami
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Operatory bitowe (<<, >>, |, &, ^, ~)
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Bity i bajty
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Operatory przesunięcia (<<, >>, <<=, >>=)
- Operatory bitowe (&, |, ^)
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Objaśnienie operatorów logicznych
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Bitowe złożone operatory przypisania (&=, |=, ^=)
- Bitowy operator dopełnienia (~)
- Instrukcje związane z przepływem sterowania ciąg dalszy
- Pętle while i do/while
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Kiedy należy stosować pętlę while?
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Pętle while i do/while
- Pętla for
- Pętla foreach
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- W jakich sytuacjach sensowne jest stosowanie instrukcji switch?
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Podstawowa postać instrukcji switch
- Instrukcje skoku
- Instrukcja break
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Sprawdzanie pozycji za pomocą operatorów bitowych
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Instrukcja break
- Instrukcja continue
- Instrukcja goto
- Dyrektywy preprocesora języka C#
- Wykluczanie i dołączanie kodu (#if, #elif, #else, #endif)
- Definiowanie symboli preprocesora (#define, #undef)
- Generowanie błędów i ostrzeżeń (#error, #warning)
- Wyłączanie komunikatów z ostrzeżeniami (#pragma)
- Opcja nowarn:<lista ostrzeżeń>
- Określanie numerów wierszy (#line)
- Wskazówki dla edytorów kodu z interfejsem graficznym (#region, #endregion)
- Podsumowanie
- 5. Metody i parametry
- Wywoływanie metody
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Czym jest metoda?
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Przestrzenie nazw
- Nazwa typu
- Zasięg
- Nazwa metody
- Parametry i argumenty
- Wartości zwracane przez metody
- Instrukcje a wywołania metod
- Wywoływanie metody
- Deklarowanie metody
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Refaktoryzacja kodu przez umieszczanie go w metodach
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Deklarowanie parametrów formalnych
- Deklaracja typu wartości zwracanej przez metodę
- Metody z ciałem w postaci wyrażenia
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Przestrzenie nazw
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Dyrektywa using
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Zagnieżdżone dyrektywy using
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Dyrektywa using static
- Tworzenie aliasów
- Zwracane wartości i parametry metody Main()
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Odróżnianie od siebie różnych metod Main()
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Stos wywołań i miejsce wywołania
- Zaawansowane parametry metod
- Parametry przekazywane przez wartość
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Dopasowywanie zmiennych z jednostki wywołującej do nazw parametrów
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Typy referencyjne a typy bezpośrednie
- Parametry przekazywane przez wartość
- Parametry przekazywane przez referencję (z modyfikatorem ref)
- Parametry wyjściowe (z modyfikatorem out)
- Przekazywanie przez referencję w trybie tylko do odczytu (in)
- Zwracanie przez referencję
- Tablice parametrów (params)
- Rekurencja
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Błąd nieskończonej rekurencji
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Przeciążanie metod
- Parametry opcjonalne
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Określanie wywoływanej metody
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Podstawowa obsługa błędów z wykorzystaniem wyjątków
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Wartość 42 jako łańcuch znaków i jako liczba całkowita
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Przechwytywanie błędów
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Dziedziczenie klas wyjątków
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Ogólny blok catch
- Zgłaszanie błędów za pomocą instrukcji throw
- Unikaj stosowania obsługi wyjątków do radzenia sobie z oczekiwanymi sytuacjami
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Przekształcanie liczb za pomocą instrukcji TryParse()
- Podsumowanie
- 6. Klasy
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Programowanie obiektowe
- Hermetyzacja
- Dziedziczenie
- Polimorfizm
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Deklarowanie klasy i tworzenie jej instancji
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Czym są obiekty, a czym klasy?
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Hermetyzacja, część 1. Obiekty łączą dane z metodami
- Pola instancji
- Deklarowanie pola instancji
- Dostęp do pól instancji
- Metody instancji
- Stosowanie słowa kluczowego this
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Wykorzystywanie stylu programowania do unikania wieloznaczności
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Zapisywanie i wczytywanie plików
- Modyfikatory dostępu
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Hermetyzacja, część 2. Ukrywanie informacji
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Właściwości
- Deklarowanie właściwości
- Automatycznie implementowane wartości
- Wskazówki dotyczące właściwości i pól
- Używanie właściwości ze sprawdzaniem poprawności
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Operator nameof
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Właściwości przeznaczone tylko do odczytu i tylko do zapisu
- Właściwości jako pola wirtualne
- Modyfikatory dostępu w getterach i setterach
- Właściwości i wywołania metod nie są dozwolone jako wartości parametrów ref i out
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wewnętrzne mechanizmy właściwości
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Konstruktory
- Deklarowanie konstruktora
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Szczegóły implementacji operatora new
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Deklarowanie konstruktora
- Konstruktory domyślne
- Inicjatory obiektów
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Inicjatory kolekcji
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Finalizatory
- Przeciążanie konstruktorów
- Łączenie konstruktorów w łańcuch wywoływanie innego konstruktora za pomocą słowa kluczowego this
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Centralizowanie inicjowania
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Dekonstruktory
- Składowe statyczne
- Pola statyczne
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Dane można powiązać zarówno z klasą, jak i z obiektami
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Pola statyczne
- Metody statyczne
- Konstruktory statyczne
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Preferuj statyczną inicjację w deklaracji
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Właściwości statyczne
- Klasy statyczne
- Metody rozszerzające
- Hermetyzacja danych
- Modyfikator const
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Stałe publiczne powinny być niezmiennymi wartościami
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Modyfikator const
- Modyfikator readonly
- Klasy zagnieżdżone
- Klasy częściowe
- Definiowanie klasy częściowej
- Metody częściowe
- Podsumowanie
- Dziedziczenie
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Definicje z obszaru dziedziczenia
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Tworzenie klas pochodnych
- Rzutowanie między typami bazowymi i pochodnymi
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Rzutowanie w łańcuchu dziedziczenia
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Definiowanie niestandardowych konwersji
- Rzutowanie między typami bazowymi i pochodnymi
- Modyfikator dostępu private
- Modyfikator dostępu protected
- Metody rozszerzające
- Dziedziczenie po jednym typie
- Klasy zamknięte
- Przesłanianie składowych z klas bazowych
- Modyfikator virtual
- Modyfikator new
- Modyfikator sealed
- Składowa base
- Konstruktory
- Klasy abstrakcyjne
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Klasy abstrakcyjne
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Polimorfizm
- Wszystkie klasy są pochodne od System.Object
- Sprawdzanie typu za pomocą operatora is
- Dopasowanie do wzorca z użyciem operatora is
- Dopasowanie do wzorca w instrukcji switch
- Konwersja z wykorzystaniem operatora as
- Podsumowanie
- 8. Interfejsy
- Wprowadzenie do interfejsów
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Po co stosować interfejsy?
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Wprowadzenie do interfejsów
- Polimorfizm oparty na interfejsach
- Implementacja interfejsu
- Składowe z jawnie podawanym interfejsem
- Składowe bez jawnie podawanego interfejsu
- Porównanie implementacji z jawnie podawanym interfejsem i bez podawania interfejsu
- Przekształcanie między klasą z implementacją i interfejsami
- Dziedziczenie interfejsów
- Dziedziczenie po wielu interfejsach
- Metody rozszerzające i interfejsy
- Implementowanie wielodziedziczenia za pomocą interfejsów
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Diagramy interfejsów
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Zarządzanie wersjami
- Interfejsy a klasy
- Interfejsy a atrybuty
- Podsumowanie
- 9. Typy bezpośrednie
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Kategorie typów
- Typy bezpośrednie
- Typy referencyjne
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Struktury
- Inicjowanie struktur
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Używanie operatora new do typów bezpośrednich
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Inicjowanie struktur
- Używanie operatora default
- Dziedziczenie i interfejsy a typy bezpośrednie
- Opakowywanie
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Typy bezpośrednie w instrukcji lock
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Jak uniknąć opakowywania w wywołaniach metod?
- Wyliczenia
- Zgodność typów wyliczeniowych
- Konwersja między wyliczeniami a łańcuchami znaków
- Wyliczenia jako flagi
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Atrybut FlagsAttribute
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Podsumowanie
- 10. Dobrze uformowane typy
- Przesłanianie składowych z klasy object
- Przesłanianie metody ToString()
- Przesłanianie metody GetHashCode()
- Przesłanianie metody Equals()
- Tożsamość obiektów a równe wartości obiektów
- Implementowanie metody Equals()
- Przeciążanie funkcji GetHashCode() i Equals() z użyciem krotek
- Przesłanianie składowych z klasy object
- Przeciążanie operatorów
- Operatory porównania (==, !=, <, >, <=, >=)
- Operatory dwuargumentowe (+, , *, /, %, &, |, ^, <<, >>)
- Łączenie przypisania z operatorami dwuargumentowymi (+=, =, *=, /=, %=, &=, )
- Logiczne operatory warunkowe (&&, ||)
- Operatory jednoargumentowe (+, , !, ~, ++, , true, false)
- Operatory konwersji
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Operator rzutowania ()
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wytyczne dotyczące operatorów konwersji
- Wskazywanie innych podzespołów
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Biblioteki klas
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Wskazywanie biblioteki
- Wskazywanie projektu lub biblioteki w Dotnet CLI
- Wskazywanie projektu lub biblioteki w Visual Studio 2017
- Pakiety NuGet
- Referencje do pakietów NuGet w Dotnet CLI
- Dodawanie referencji do pakietów NuGet w Visual Studio 2017
- Wywoływanie pakietu NuGet
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Hermetyzacja typów
- Modyfikatory dostępu public i internal w deklaracjach typów
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Modyfikator protected internal dla składowych w typach
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Modyfikatory dostępu dla składowych w typach
- Definiowanie przestrzeni nazw
- Komentarze XML-owe
- Wiązanie komentarzy XML-owych z konstrukcjami programistycznymi
- Generowanie pliku z dokumentacją w formacie XML
- Odzyskiwanie pamięci
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Odzyskiwanie pamięci w platformie .NET
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Słabe referencje
- Porządkowanie zasobów
- Finalizatory
- Deterministyczna finalizacja z wykorzystaniem instrukcji using
- Odzyskiwanie pamięci, finalizacja i interfejs IDisposable
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Przekazywanie wyjątków z konstruktorów
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Ponowne tworzenie usuwanych obiektów
- Leniwe inicjowanie
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Leniwe inicjowanie za pomocą typów generycznych i wyrażeń lambda
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Podsumowanie
- 11. Obsługa wyjątków
- Wiele typów wyjątków
- Przechwytywanie wyjątków
- Ponowne zgłaszanie przetwarzanego wyjątku
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Zgłaszanie istniejącego już wyjątku bez zastępowania informacji na stosie
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Ponowne zgłaszanie przetwarzanego wyjątku
- Ogólny blok catch
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Ogólne bloki catch w języku C# 1.0
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wewnętrzne mechanizmy pustego bloku catch
- Wskazówki związane z obsługą wyjątków
- Definiowanie niestandardowych wyjątków
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wyjątki z obsługą serializacji
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Ponowne zgłaszanie opakowanego wyjątku
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Konwersje z kontrolą i bez kontroli
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Podsumowanie
- 12. Typy generyczne
- Język C# bez typów generycznych
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Inny przykład typy bezpośrednie z możliwą wartością null
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Język C# bez typów generycznych
- Wprowadzenie do typów generycznych
- Używanie klasy generycznej
- Definiowanie prostej klasy generycznej
- Zalety typów generycznych
- Wskazówki związane z tworzeniem nazw parametrów określających typy
- Generyczne interfejsy i struktury
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wielokrotne implementowanie jednego interfejsu w tej samej klasie
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Definiowanie konstruktora i finalizatora
- Określanie wartości domyślnej
- Wiele parametrów określających typ
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Krotki typy o różnej arności
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Zagnieżdżone typy generyczne
- Ograniczenia
- Ograniczenia dotyczące interfejsu
- Ograniczenia dotyczące klasy
- Ograniczenia wymagające struktury lub klasy (struct i class)
- Zestawy ograniczeń
- Ograniczenia dotyczące konstruktora
- Ograniczenia dotyczące dziedziczenia
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wymogi związane z ograniczeniami
- Ograniczenia dotyczące operatorów są niedozwolone
- Relacja LUB między ograniczeniami nie jest obsługiwana
- Ograniczenia dotyczące delegatów i wyliczeń są niedozwolone
- W ograniczeniu dotyczącym konstruktora można podawać tylko konstruktory domyślne
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Metody generyczne
- Inferencja typów w metodach generycznych
- Dodawanie ograniczeń
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Rzutowanie w metodach generycznych
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Kowariancja i kontrawariancja
- Umożliwianie kowariancji za pomocą modyfikatora out stosowanego do parametru określającego typ (od wersji C# 4.0)
- Umożliwianie kontrawariancji z użyciem modyfikatora in dla parametru określającego typ (od wersji C# 4.0)
- Obsługa niezabezpieczonej kowariancji w tablicach
- Wewnętrzne mechanizmy typów generycznych
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Reprezentacja typów generycznych w kodzie CIL
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Tworzenie obiektów typów generycznych opartych na typach bezpośrednich
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Tworzenie obiektów typów generycznych opartych na typach referencyjnych
- Podsumowanie
- 13. Delegaty i wyrażenia lambda
- Wprowadzenie do delegatów
- Opis scenariusza
- Typ danych w postaci delegata
- Wprowadzenie do delegatów
- Deklarowanie typu delegata
- Typy delegatów do ogólnego użytku System.Func i System.Action
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Deklarowanie typu delegata
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Typy delegatów do ogólnego użytku System.Func i System.Action
- Tworzenie instancji delegata
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Tworzenie instancji delegatów w wersji C# 1.0
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wewnętrzne mechanizmy delegatów
- Wyrażenia lambda
- Lambdy w postaci instrukcji
- Lambdy w postaci wyrażeń
- Metody anonimowe
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Bezparametrowe metody anonimowe
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Skąd się wzięła nazwa lambda?
- Delegaty nie zapewniają równości strukturalnej
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wewnętrzne mechanizmy wyrażeń lambda i metod anonimowych
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Zmienne zewnętrzne
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Implementacja zmiennych zewnętrznych w kodzie CIL
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Przypadkowe przechwytywanie zmiennych z pętli
- Drzewo wyrażeń
- Używanie wyrażeń lambda jako danych
- Drzewa wyrażeń są grafami obiektów
- Delegaty a drzewa wyrażeń
- Badanie drzewa wyrażeń
- Podsumowanie
- 14. Zdarzenia
- Implementacja wzorca publikuj-subskrybuj za pomocą delegatów typu multicast
- Definiowanie metod subskrybujących
- Definiowanie klasy publikującej zdarzenia
- Łączenie subskrybentów z nadawcą
- Wywoływanie delegata
- Sprawdzanie, czy wartość jest różna od null
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Operator = delegatów zwraca nową instancję
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wywoływanie delegata z zachowaniem bezpieczeństwa ze względu na wątki
- Implementacja wzorca publikuj-subskrybuj za pomocą delegatów typu multicast
- Operatory używane do delegatów
- Wywołania sekwencyjne
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wewnętrzne mechanizmy delegatów typu multicast
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Obsługa błędów
- Wartości zwracane przez metodę i przekazywanie danych przez referencję
- Zdarzenia
- Po co stosować zdarzenia?
- Hermetyzacja subskrypcji
- Hermetyzacja procesu publikacji
- Po co stosować zdarzenia?
- Deklarowanie zdarzeń
- Konwencje programistyczne
- Typy generyczne a delegaty
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wewnętrzne mechanizmy zdarzeń
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Modyfikowanie implementacji zdarzeń
- Podsumowanie
- 15. Interfejsy kolekcji ze standardowymi operatorami kwerend
- Inicjatory kolekcji
- Interfejs IEnumerable<T> sprawia, że klasa staje się kolekcją
- Instrukcja foreach dla tablic
- Instrukcja foreach dla interfejsu IEnumerable<T>
- Współdzielony stan
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Porządkowanie zasobów po iteracji
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Pętla foreach bez interfejsu IEnumerable
- Nie modyfikuj kolekcji w trakcie iterowania z wykorzystaniem pętli foreach
- Standardowe operatory kwerend
- Filtrowanie danych za pomocą metody Where()
- Projekcje z wykorzystaniem metody Select()
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Równoległe wykonywanie kwerend w technologii LINQ
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Zliczanie elementów za pomocą metody Count()
- Opóźnione wykonanie
- Sortowanie z wykorzystaniem metod OrderBy() i ThenBy()
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Złączanie
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Przeprowadzanie złączania wewnętrznego za pomocą instrukcji Join()
- Grupowanie wyników za pomocą metody GroupBy()
- Implementowanie relacji jeden do wielu za pomocą metody GroupJoin()
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Implementowanie złączeń zewnętrznych za pomocą metody GroupJoin()
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wywoływanie metody SelectMany()
- Inne standardowe operatory kwerend
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Klasa Queryable z metodami rozszerzającymi interfejs IQueryable<T>
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Typy anonimowe w technologii LINQ
- Typy anonimowe
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Zmienne lokalne o niejawnie określanym typie (zmienne var)
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Typy anonimowe
- Pobieranie danych do zmiennych typu anonimowego za pomocą technologii LINQ
- Więcej o typach anonimowych i zmiennych lokalnych o niejawnie określanym typie
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Generowanie typów anonimowych
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Inicjatory kolekcji a typy anonimowe
- Podsumowanie
- 16. Technologia LINQ i wyrażenia z kwerendami
- Wprowadzenie do wyrażeń z kwerendami
- Projekcja
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Opóźnione wykonywanie wyrażeń z kwerendą
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Implementacja opóźnionego wykonywania
- Projekcja
- Wprowadzenie do wyrażeń z kwerendami
- Filtrowanie
- Sortowanie
- Klauzula let
- Grupowanie
- Kontynuowanie kwerendy za pomocą klauzuli into
- Spłaszczanie sekwencji składających się z sekwencji za pomocą kilku klauzul from
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Niepowtarzalne elementy
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Wyrażenia z kwerendą to tylko wywołania metod
- Podsumowanie
- 17. Tworzenie niestandardowych kolekcji
- Inne interfejsy implementowane w kolekcjach
- Porównanie interfejsów IList<T> i IDictionary<TKey, TValue>
- Interfejs ICollection<T>
- Inne interfejsy implementowane w kolekcjach
- Podstawowe klasy kolekcji
- Kolekcje w postaci list List<T>
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Modyfikowanie procesu sortowania kolekcji
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Kolekcje w postaci list List<T>
- Porządkowanie całkowite
- Przeszukiwanie kolekcji typu List<T>
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wyszukiwanie wielu elementów za pomocą metody FindAll()
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Kolekcje w postaci słownika Dictionary<TKey, TValue>
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Modyfikowanie sprawdzania równości w słowniku
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Wymogi związane ze sprawdzaniem równości
- Kolekcje posortowane SortedDictionary<TKey, TValue> i SortedList<T>
- Kolekcje w postaci stosu Stack<T>
- Kolekcje w postaci kolejek Queue<T>
- Listy powiązane LinkedList<T>
- Udostępnianie indeksera
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Określanie nazwy indeksera za pomocą atrybutu IndexerName
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Definiowanie operatora indeksowania przyjmującego różną liczbę parametrów
- Zwracanie wartości null lub pustej kolekcji
- Iteratory
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Początki iteratorów
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Definiowanie iteratora
- Składnia iteratora
- Zwracanie wartości przez iterator
- Iteratory i stan
- Inne przykładowe iteratory
- Umieszczanie instrukcji yield return w pętli
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Zagrożenia związane z iteratorami rekurencyjnymi
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Struktury a klasy
- Anulowanie dalszych iteracji za pomocą instrukcji yield break
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Jak działają iteratory
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Kontekstowe słowa kluczowe
- Tworzenie wielu identyfikatorów w jednej klasie
- Wymagania związane z instrukcją yield
- Podsumowanie
- 18. Refleksja, atrybuty i programowanie dynamiczne
- Mechanizm refleksji
- Dostęp do metadanych za pomocą obiektu typu System.Type
- Metoda GetType()
- Operator typeof()
- Dostęp do metadanych za pomocą obiektu typu System.Type
- Wywoływanie składowych
- Refleksja dotycząca typów generycznych
- Ustalanie typów podanych w parametrach określających typ
- Określanie, czy klasa lub metoda ma parametry generyczne
- Pobieranie parametrów określających typ z klas lub metod generycznych
- Mechanizm refleksji
- Operator nameof
- Atrybuty
- Niestandardowe atrybuty
- Wyszukiwanie atrybutów
- Inicjowanie atrybutu za pomocą konstruktora
- Atrybut System.AttributeUsageAttribute
- Parametry nazwane
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Atrybut FlagsAttribute
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Predefiniowane atrybuty
- Atrybut System.ConditionalAttribute
- Atrybut System.ObsoleteAttribute
- Atrybuty związane z serializacją
- Atrybut System.NonSerializable
- Udostępnianie niestandardowej serializacji
- Zarządzanie wersjami w trakcie serializacji
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Atrybut System.SerializableAttribute i kod CIL
- Programowanie z wykorzystaniem obiektów dynamicznych
- Korzystanie z refleksji za pomocą instrukcji dynamic
- Zasady i operacje związane z typem dynamic
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Omówienie typu dynamic
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Po co stosować wiązanie dynamiczne?
- Statyczna kompilacja a programowanie dynamiczne
- Tworzenie niestandardowych obiektów dynamicznych
- Podsumowanie
- 19. Wielowątkowość
- Podstawy wielowątkowości
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Słownictwo związane z wielowątkowością
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Co, jak i dlaczego w dziedzinie wielowątkowości
- Podstawy wielowątkowości
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Uwagi dotyczące wydajności
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Problemy z wątkami
- Większość operacji nie jest atomowa
- Niepewność spowodowana sytuacją wyścigu
- Modele zarządzania pamięcią są skomplikowane
- Blokady mogą skutkować zakleszczeniem
- Problemy z wątkami
- Używanie klasy System.Threading
- Wykonywanie operacji asynchronicznych za pomocą klasy System.Threading.Thread
- Zarządzanie wątkami
- Nie usypiaj wątków w kodzie produkcyjnym
- Nie usuwaj wątków w kodzie produkcyjnym
- Pule wątków
- Zadania asynchroniczne
- Od wątków do zadań
- Wprowadzenie do asynchronicznych zadań
- Kontynuacja zadania
- Używanie wyjątków AggregateException do obsługi nieobsłużonych wyjątków w zadaniach
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Radzenie sobie z nieobsłużonymi wyjątkami w wątku
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Anulowanie zadania
- Task.Run() skrócona i uproszczona wersja wywołania Task.Factory.StartNew()
- Długotrwałe zadania
- Zadania pozwalają zwalniać zasoby
- Wzorzec obsługi asynchroniczności za pomocą zadań
- Synchroniczne wywoływanie operacji o dużej latencji
- Asynchroniczne wywoływanie operacji o dużej latencji za pomocą biblioteki TPL
- Asynchroniczność oparta na zadaniach oraz instrukcjach async i await
- Zwracanie wartości w metodach asynchronicznych
- Dodanie możliwości zwracania typu ValueTask<T> w metodach asynchronicznych
- Zwracanie wartości void w metodach asynchronicznych
- Asynchroniczne lambdy i funkcje lokalne
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Tworzenie niestandardowej metody asynchronicznej
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Oczekiwanie na wartości inne niż obiekt typu Task<T>
- Programy szeregujące zadania i kontekst synchronizacji
- Modyfikatory async i await w programach z interfejsem użytkownika z systemu Windows
- Operatory await
- Równoległe wykonywanie iteracji pętli
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- W jaki sposób biblioteka TPL dostraja wydajność
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Używanie typu AggregateException do obsługi wyjątków w pętlach równoległych
- Anulowanie wykonywania pętli równoległej
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Opcje pętli równoległych
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Wychodzenie z pętli równoległej
- Równoległe wykonywanie kwerend LINQ
- Anulowanie kwerendy PLINQ
- Podsumowanie
- 20. Synchronizowanie wątków
- Po co stosować synchronizację?
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Wiele wątków i zmienne lokalne
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Synchronizacja z wykorzystaniem klasy Monitor
- Stosowanie słowa kluczowego lock
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Zwracanie obiektu typu Task bez operatora await
- ZAGADNIENIE DLA POCZĄTKUJĄCYCH
- Po co stosować synchronizację?
- Wybieranie obiektu reprezentującego blokadę
- Dlaczego należy unikać blokad opartych na słowie kluczowym this, wyrażeniu typeof(typ) lub typie string?
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Unikaj synchronizacji z wykorzystaniem atrybutu MethodImplAttribute
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Deklarowanie pól jako zmiennych (volatile)
- Stosowanie klasy System.Threading.Interlocked
- Powiadomienia o zdarzeniach kierowane do wielu wątków
- Najlepsze praktyki z obszaru projektowania synchronizacji
- Unikanie zakleszczenia
- Kiedy należy zapewniać synchronizację?
- Unikanie zbędnych blokad
- Inne typy związane z synchronizacją
- Korzystanie z klasy System.Threading.Mutex
- Klasa WaitHandle
- Zdarzenia resetujące ManualResetEvent i ManualResetEventSlim
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Przedkładaj typ ManualResetEvent i semafory nad typ AutoResetEvent
- Typy Semaphore, SemaphoreSlim i CountdownEvent
- Klasy kolekcji przetwarzanych równolegle
- Pamięć lokalna wątków
- ThreadLocal<T>
- Pamięć lokalna wątku tworzona za pomocą atrybutu ThreadStaticAttribute
- Zegary
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Kontrolowanie modelu wątkowego w technologii COM za pomocą atrybutu STAThreadAttribute
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Podsumowanie
- 21. Współdziałanie między platformami i niezabezpieczony kod
- Mechanizm P/Invoke
- Deklarowanie funkcji zewnętrznych
- Typy danych parametrów
- Stosowanie parametrów ref zamiast wskaźników
- Używanie atrybutu StructLayoutAttribute do zapewniania układu sekwencyjnego
- Obsługa błędów
- Używanie typu SafeHandle
- Wywoływanie funkcji zewnętrznych
- Upraszczanie wywołań interfejsów API za pomocą nakładek
- Odwzorowywanie wskaźników do funkcji na delegaty
- Wskazówki
- Mechanizm P/Invoke
- Wskaźniki i adresy
- Kod niezabezpieczony
- Deklarowanie wskaźników
- Przypisywanie wartości do wskaźników
- Zapewnianie stałej lokalizacji danych
- Alokowanie danych na stosie
- Dereferencja wskaźników
- Dostęp do składowych typu docelowego
- Wykonywanie niezabezpieczonego kodu za pomocą delegata
- Podsumowanie
- 22. Standard CLI
- Definiowanie standardu CLI
- Implementacje standardu CLI
- Microsoft .NET Framework
- .NET Core
- Xamarin
- Specyfikacja .NET Standard
- Biblioteka BCL
- Kompilacja kodu w języku C# na kod maszynowy
- Środowisko uruchomieniowe
- Odzyskiwanie pamięci
- Odzyskiwanie pamięci w platformie .NET
- Bezpieczeństwo ze względu na typ
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Omijanie hermetyzacji i modyfikatorów dostępu
- ZAGADNIENIE DLA ZAAWANSOWANYCH
- Przenośność między platformami
- Wydajność
- Podzespoły, manifesty i moduły
- Język Common Intermediate Language
- Common Type System
- Common Language Specification
- Metadane
- Architektura .NET Native i kompilacja AOT
- Podsumowanie
Helion - inne książki
-
Najnowsza książka Witolda Wrotka liczy - jak sugeruje tytuł - 55 rozdziałów, które stanowią stopniowe wprowadzenie w świat elektroniki, a konkretnie tranzystorów i zbudowanych na ich podstawie układów. Treść zawarta w tym przystępnym przewodniku została zilustrowana licznymi schematami i niejedno...(0,00 zł najniższa cena z 30 dni)
35.94 zł
59.90 zł(-40%) -
Niniejsza książka jest przeznaczona dla kadry kierowniczej najwyższego szczebla oraz dla osób sterujących rozwojem oprogramowania w firmie. Ma pomóc w zrozumieniu problemów strategicznych, z jakimi te osoby się mierzą, a także ułatwić wybór najlepszego rozwiązania architektonicznego. W książce op...
Strategiczne monolity i mikrousługi. Jak napędzać innowacyjność za pomocą przemyślanej architektury Strategiczne monolity i mikrousługi. Jak napędzać innowacyjność za pomocą przemyślanej architektury
(0,00 zł najniższa cena z 30 dni)41.40 zł
69.00 zł(-40%) -
To książka przeznaczona dla użytkowników komputerów pracujących pod kontrolą Linuksa. Znalazły się w niej tak ważne kwestie, jak omówienie komponentów o krytycznym znaczeniu i mechanizmów kontroli dostępu czy wyjaśnienie systemu plików w Linuksie. Umieszczono tu również liczne wskazówki i ćwiczen...
Nowoczesny Linux. Przewodnik dla użytkownika natywnej chmury Nowoczesny Linux. Przewodnik dla użytkownika natywnej chmury
(0,00 zł najniższa cena z 30 dni)41.40 zł
69.00 zł(-40%) -
Ta książka powstała z myślą o architektach oprogramowania, projektantach, programistach i dyrektorach do spraw technicznych. Zwięźle i przystępnie opisano w niej, jak zadbać o bezpieczeństwo na wczesnym etapie projektowania oprogramowania i jak zaangażować w ten proces cały team. Najpierw zapreze...
Po pierwsze: bezpieczeństwo. Przewodnik dla twórców oprogramowania Po pierwsze: bezpieczeństwo. Przewodnik dla twórców oprogramowania
(0,00 zł najniższa cena z 30 dni)47.40 zł
79.00 zł(-40%) -
Przeczytasz o tym, jak wykrywać nowe luki w oprogramowaniu, jak tworzyć trojany i rootkity, a także jak używać techniki wstrzykiwania SQL. Zapoznasz się również z szeroką gamą narzędzi do przeprowadzania testów penetracyjnych (takich jak Metasploit Framework, mimikatz i BeEF), rozeznasz się w dzi...
Etyczny haking. Praktyczne wprowadzenie do hakingu Etyczny haking. Praktyczne wprowadzenie do hakingu
(0,00 zł najniższa cena z 30 dni)53.40 zł
89.00 zł(-40%) -
Ta książka jest kompleksowym i praktycznym przewodnikiem po hakowaniu aplikacji internetowych w ramach udziału w programach bug bounty. Znajdziesz w niej wszystkie niezbędne informacje, od budowania relacji z klientami i pisania znakomitych raportów o błędach w zabezpieczeniach po naukę zaawansow...
Bug Bounty Bootcamp. Przewodnik po tropieniu i zgłaszaniu luk w zabezpieczeniach Bug Bounty Bootcamp. Przewodnik po tropieniu i zgłaszaniu luk w zabezpieczeniach
(0,00 zł najniższa cena z 30 dni)59.40 zł
99.00 zł(-40%) -
Paweł Zaręba, autor Praktycznych projektów sieciowych, od wielu lat związany z branżą IT i ICT, za namową swoich wiernych czytelników napisał drugą książkę. Tę wcześniejszą można traktować jako kompendium wiedzy na temat sieci komputerowych - Projekty i rozwiązania sieciowe w praktyce są niejako ...(0,00 zł najniższa cena z 30 dni)
41.40 zł
69.00 zł(-40%) -
Autor znanych czytelnikom wydawnictwa Helion książek między innymi na temat otwartoźródłowego systemu operacyjnego przygotował szóstą już edycję przewodnika po komendach i poleceniach Linuksa. W kieszonkowym leksykonie omówił posługiwanie się komputerem z Linuksem na pokładzie za pomocą poleceń, ...(0,00 zł najniższa cena z 30 dni)
23.94 zł
39.90 zł(-40%) -
Współczesnym przemysłem rządzi… informatyka. Ta dziedzina stale się rozwija i zagarnia pod swoje skrzydła kolejne sektory ― od produkcji, przez logistykę i księgowość, po dystrybucję i sprzedaż. Tyle teorii. W praktyce zaś często się okazuje, że podczas gdy otoczenie biznesowe i techn...
Digitalizacja w systemach automatyki SIMATIC. Teoria, przykłady, ćwiczenia Digitalizacja w systemach automatyki SIMATIC. Teoria, przykłady, ćwiczenia
(0,00 zł najniższa cena z 30 dni)59.40 zł
99.00 zł(-40%) -
Ta książka jest zwięzłym, skupionym na praktyce przewodnikiem po Pythonie w wersji 3.6 i nowszych. Dzięki niej skoncentrujesz się na rdzeniu języka i podstawowych zagadnieniach, które musisz doskonale opanować, jeśli chcesz pisać w nim dobry kod. Dowiesz się zatem, jak działa Python i jakich zasa...(0,00 zł najniższa cena z 30 dni)
41.40 zł
69.00 zł(-40%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
W przypadku usługi "Druk na żądanie" termin dostarczenia przesyłki może obejmować także czas potrzebny na dodruk (do 10 dni roboczych)
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.


Oceny i opinie klientów: C# 7.0. Kompletny przewodnik dla praktyków. Wydanie VI Mark Michaelis (6)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.
(4)
(1)
(1)
(0)
(0)
(0)
Data dodania: 2020-05-02 Ocena: 6 Opinia potwierdzona zakupem
Maciej,
Data dodania: 2020-01-12 Ocena: 6 Opinia potwierdzona zakupem
Rafał,
Data dodania: 2020-08-27 Ocena: 5 Opinia niepotwierdzona zakupem
Oceny i opinie poprzednich wydań
.net guy,
Data dodania: 2021-05-18 Ocena: 6 Opinia potwierdzona zakupem
Data dodania: 2018-04-09 Ocena: 6 Opinia niepotwierdzona zakupem
Krzysztof,
Data dodania: 2019-04-06 Ocena: 4 Opinia niepotwierdzona zakupem
więcej opinii