reklama - zainteresowany?

C# 7.0. Kompletny przewodnik dla praktyk贸w. Wydanie VI - Helion

C# 7.0. Kompletny przewodnik dla praktyk贸w. Wydanie VI
Autor: Mark Michaelis
Tytu艂 orygina艂u: Essential C# 7.0 (6th Edition)
ISBN: 978-83-283-5780-8
ok艂adka: mi臋kka
Data wydania: 2019-07-01
Ksi臋garnia: Helion

Cena ksi膮偶ki: 129,00 z艂

Dodaj do koszyka C# 7.0. Kompletny przewodnik dla praktyk贸w. Wydanie VI

Dodaj do koszyka C# 7.0. Kompletny przewodnik dla praktyk贸w. Wydanie VI

 

Osoby kt贸re kupowa艂y "C# 7.0. Kompletny przewodnik dla praktyk贸w. Wydanie VI", wybiera艂y tak偶e:

  • Windows Media Center. Domowe centrum rozrywki
  • Ruby on Rails. 膯wiczenia
  • DevOps w praktyce. Kurs video. Jenkins, Ansible, Terraform i Docker
  • Przyw贸dztwo w 艣wiecie VUCA. Jak by膰 skutecznym liderem w niepewnym 艣rodowisku
  • Scrum. O zwinnym zarz膮dzaniu projektami. Wydanie II rozszerzone

Dodaj do koszyka C# 7.0. Kompletny przewodnik dla praktyk贸w. Wydanie VI

Spis tre艣ci

C# 7.0. Kompletny przewodnik dla praktyk贸w. Wydanie VI -- spis tre艣ci

  • 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 projektu
      • Kompilowanie i wykonywanie kodu
      • Kod 藕r贸d艂owy do ksi膮偶ki C# 7.0
        • U偶ywanie Dotnet CLI
        • U偶ywanie Visual Studio
    • Podstawy sk艂adni j臋zyka C#
      • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
        • S艂owa kluczowe
      • 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 ZAAWANSOWANYCH
          • Deklaracja metody Main
      • Instrukcje i ograniczniki instrukcji
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Instrukcje bez 艣rednik贸w
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Czym s膮 odst臋py?
      • Odst臋py
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Formatowanie kodu za pomoc膮 odst臋p贸w
    • Korzystanie ze zmiennych
      • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
        • Zmienne lokalne
      • Typy danych
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Czym jest typ danych?
      • Deklarowanie zmiennej
      • Przypisywanie warto艣ci do zmiennej
      • Korzystanie ze zmiennej
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Warto艣膰 艂a艅cuch贸w znak贸w jest niezmienna
    • Dane wej艣ciowe i wyj艣ciowe w konsoli
      • Pobieranie danych wej艣ciowych z konsoli
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Metoda System.Console.Read()
      • Wy艣wietlanie danych wyj艣ciowych w konsoli
      • Komentarze
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • XML
    • 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
    • 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
      • Litera艂y liczbowe
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Zachowaj ostro偶no艣膰, gdy zapisujesz warto艣ci na sztywno
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Notacja szesnastkowa
        • 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 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
        • Konwersja niejawna
      • Konwersja typ贸w bez rzutowania
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Metoda TryParse()
    • Podsumowanie
  • 3. Jeszcze o typach danych
    • Kategorie typ贸w
      • Typy bezpo艣rednie
      • Typy referencyjne
    • Modyfikator umo偶liwiaj膮cy stosowanie warto艣ci null
      • Zmienne lokalne z niejawnie okre艣lanym typem danych
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Typy anonimowe
    • Krotki
      • ZAGADNIENIE DLA ZAAWANSOWANYCH
        • Typ System.ValueTuple<>
    • Tablice
      • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
        • Tablice
      • 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
      • Operatory jednoargumentowe plus (+) i minus ()
      • Arytmetyczne operatory dwuargumentowe (+, , *, /, %)
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Nawiasy, 艂膮czno艣膰, priorytety i okre艣lanie warto艣ci
        • 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
      • Z艂o偶one operatory przypisania (+=, =, *=, /=, %=)
      • Operatory inkrementacji i dekrementacji (++, )
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Przyk艂adowa dekrementacja w p臋tli
        • 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
    • Operatory bitowe (<<, >>, |, &, ^, ~)
      • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
        • Bity i bajty
      • Operatory przesuni臋cia (<<, >>, <<=, >>=)
      • Operatory bitowe (&, |, ^)
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Obja艣nienie operator贸w logicznych
      • 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?
      • P臋tla for
      • P臋tla foreach
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • W jakich sytuacjach sensowne jest stosowanie instrukcji switch?
      • Podstawowa posta膰 instrukcji switch
    • Instrukcje skoku
      • Instrukcja break
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Sprawdzanie pozycji za pomoc膮 operator贸w bitowych
      • 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?
      • Przestrzenie nazw
      • Nazwa typu
      • Zasi臋g
      • Nazwa metody
      • Parametry i argumenty
      • Warto艣ci zwracane przez metody
      • Instrukcje a wywo艂ania metod
    • Deklarowanie metody
      • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
        • Refaktoryzacja kodu przez umieszczanie go w metodach
      • 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
    • Dyrektywa using
      • ZAGADNIENIE DLA ZAAWANSOWANYCH
        • Zagnie偶d偶one dyrektywy using
      • 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 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 ZAAWANSOWANYCH
          • Typy referencyjne a typy bezpo艣rednie
      • 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
    • Przeci膮偶anie metod
    • Parametry opcjonalne
      • ZAGADNIENIE DLA ZAAWANSOWANYCH
        • Okre艣lanie wywo艂ywanej metody
    • 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
      • Przechwytywanie b艂臋d贸w
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Dziedziczenie klas wyj膮tk贸w
        • 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
    • Deklarowanie klasy i tworzenie jej instancji
      • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
        • Czym s膮 obiekty, a czym klasy?
      • 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
      • Zapisywanie i wczytywanie plik贸w
    • Modyfikatory dost臋pu
      • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
        • Hermetyzacja, cz臋艣膰 2. Ukrywanie informacji
    • 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
      • 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
    • Konstruktory
      • Deklarowanie konstruktora
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Szczeg贸艂y implementacji operatora new
      • Konstruktory domy艣lne
      • Inicjatory obiekt贸w
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Inicjatory kolekcji
        • 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
      • Dekonstruktory
    • Sk艂adowe statyczne
      • Pola statyczne
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Dane mo偶na powi膮za膰 zar贸wno z klas膮, jak i z obiektami
      • Metody statyczne
      • Konstruktory statyczne
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Preferuj statyczn膮 inicjacj臋 w deklaracji
      • 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
      • 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
    • Tworzenie klas pochodnych
      • Rzutowanie mi臋dzy typami bazowymi i pochodnymi
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Rzutowanie w 艂a艅cuchu dziedziczenia
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Definiowanie niestandardowych konwersji
      • 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
        • 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?
    • 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
    • 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
    • Struktury
      • Inicjowanie struktur
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • U偶ywanie operatora new do typ贸w bezpo艣rednich
      • U偶ywanie operatora default
      • Dziedziczenie i interfejsy a typy bezpo艣rednie
    • Opakowywanie
      • ZAGADNIENIE DLA ZAAWANSOWANYCH
        • Typy bezpo艣rednie w instrukcji lock
      • 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
    • 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
    • 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 ()
      • Wytyczne dotycz膮ce operator贸w konwersji
    • Wskazywanie innych podzespo艂贸w
      • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
        • Biblioteki klas
      • 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
        • 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
      • 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
          • Ponowne tworzenie usuwanych obiekt贸w
    • Leniwe inicjowanie
      • ZAGADNIENIE DLA ZAAWANSOWANYCH
        • Leniwe inicjowanie za pomoc膮 typ贸w generycznych i wyra偶e艅 lambda
    • 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
    • Og贸lny blok catch
      • ZAGADNIENIE DLA ZAAWANSOWANYCH
        • Og贸lne bloki catch w j臋zyku C# 1.0
      • 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
    • Ponowne zg艂aszanie opakowanego wyj膮tku
      • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
        • Konwersje z kontrol膮 i bez kontroli
    • 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
    • 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
      • 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
      • 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
    • Metody generyczne
      • Inferencja typ贸w w metodach generycznych
      • Dodawanie ogranicze艅
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Rzutowanie w metodach generycznych
    • 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
        • 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
    • Deklarowanie typu delegata
      • Typy delegat贸w do og贸lnego u偶ytku System.Func i System.Action
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Deklarowanie typu delegata
      • Tworzenie instancji delegata
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Tworzenie instancji delegat贸w w wersji C# 1.0
        • 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
        • 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
      • Zmienne zewn臋trzne
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Implementacja zmiennych zewn臋trznych w kodzie CIL
        • 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
          • Wywo艂ywanie delegata z zachowaniem bezpiecze艅stwa ze wzgl臋du na w膮tki
      • Operatory u偶ywane do delegat贸w
      • Wywo艂ania sekwencyjne
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Wewn臋trzne mechanizmy delegat贸w typu multicast
      • 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
      • Deklarowanie zdarze艅
      • Konwencje programistyczne
      • Typy generyczne a delegaty
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Wewn臋trzne mechanizmy zdarze艅
      • 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
      • Zliczanie element贸w za pomoc膮 metody Count()
      • Op贸藕nione wykonanie
      • Sortowanie z wykorzystaniem metod OrderBy() i ThenBy()
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Z艂膮czanie
      • 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()
      • Wywo艂ywanie metody SelectMany()
      • Inne standardowe operatory kwerend
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Klasa Queryable z metodami rozszerzaj膮cymi interfejs IQueryable<T>
    • Typy anonimowe w technologii LINQ
      • Typy anonimowe
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Zmienne lokalne o niejawnie okre艣lanym typie (zmienne var)
      • 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
          • 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 ZAAWANSOWANYCH
          • Implementacja op贸藕nionego wykonywania
      • 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
    • 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>
    • Podstawowe klasy kolekcji
      • Kolekcje w postaci list List<T>
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Modyfikowanie procesu sortowania kolekcji
      • Porz膮dkowanie ca艂kowite
      • Przeszukiwanie kolekcji typu List<T>
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Wyszukiwanie wielu element贸w za pomoc膮 metody FindAll()
      • Kolekcje w postaci s艂ownika Dictionary<TKey, TValue>
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Modyfikowanie sprawdzania r贸wno艣ci w s艂owniku
        • 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
        • 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
      • 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 POCZ膭TKUJ膭CYCH
          • Struktury a klasy
      • Anulowanie dalszych iteracji za pomoc膮 instrukcji yield break
        • ZAGADNIENIE DLA ZAAWANSOWANYCH
          • Jak dzia艂aj膮 iteratory
        • 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()
      • 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
    • 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
        • 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
      • 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
        • Co, jak i dlaczego w dziedzinie 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
    • 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
    • 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
          • 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 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
          • 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
      • Synchronizacja z wykorzystaniem klasy Monitor
      • Stosowanie s艂owa kluczowego lock
        • ZAGADNIENIE DLA POCZ膭TKUJ膭CYCH
          • Zwracanie obiektu typu Task bez operatora await
      • 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
      • 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
    • 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
    • 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
      • 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

Dodaj do koszyka C# 7.0. Kompletny przewodnik dla praktyk贸w. Wydanie VI

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe nale偶膮 do wydawnictwa Helion S.A.