O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

C# 5.0. Leksykon kieszonkowy. Wydanie III

Book Description

W trakcie lektury poznasz podstawy języka C#, jego składnię, sposób deklarowania zmiennych i tworzenia funkcji. Nauczysz się operować na typach liczbowych, tworzyć pętle, instrukcje warunkowe oraz przestrzenie nazw. Ponadto wkroczysz w świat programowania obiektowego, zaznajamiając się z dziedziczeniem, polimorfizmem i interfejsami. Kolejne strony to coraz bardziej zaawansowana wiedza na temat języka LINQ, wiązań dynamicznych (nowość w C# 5.0) i funkcji asynchronicznych. Ten leksykon to pozycja obowiązkowa dla każdego programisty. Sprawdzi się również w rękach początkujących programistów jako błyskawiczny przewodnik po konstrukcjach języka C#. Warto mieć tę książkę!

Table of Contents

  1. C# 5.0: Leksykon kieszonkowy
  2. 1. C# 5.0: Leksykon kieszonkowy
    1. Konwencje typograficzne
    2. Korzystanie z przykładowych programów
    3. Pierwszy program w C#
      1. Kompilacja
    4. Składnia
      1. Identyfikatory i słowa kluczowe
        1. Unikanie kolizji nazw
        2. Kontekstowe słowa kluczowe
      2. Literały, znaki interpunkcyjne i operatory
      3. Komentarze do kodu
    5. System typów
      1. Przykłady typów predefiniowanych
      2. Przykłady typów własnych
        1. Składowe typu
        2. Symetria typów wbudowanych i typów własnych
        3. Konstruktory a konkretyzacja typu
        4. Składowe statyczne a składowe instancji
        5. Słowo kluczowe public
      3. Konwersje
      4. Typy wartościowe a typy referencyjne
        1. Typy wartościowe
        2. Typy referencyjne
        3. Wartość pusta
      5. Taksonomia typów predefiniowanych
    6. Typy liczbowe
      1. Literały liczbowe
        1. Wnioskowanie o typie literału liczbowego
        2. Przyrostki literałów liczbowych
      2. Konwersje liczbowe
        1. Konwersja liczby całkowitej na liczbę całkowitą
        2. Konwersja liczby zmiennoprzecinkowej na liczbę zmiennoprzecinkową
        3. Konwersja liczby zmiennoprzecinkowej na całkowitą
      3. Operatory arytmetyczne
      4. Operatory inkrementacji i dekrementacji
      5. Specjalizowane operacje na liczbach całkowitych
        1. Dzielenie całkowite
        2. Przepełnienie zakresu liczby całkowitej
        3. Obliczenia nadzorowane i nienadzorowane
        4. Operatory bitowe
      6. Liczby całkowite 8- i 16-bitowe
      7. Wyróżnione wartości zmiennoprzecinkowe
      8. double kontra decimal
      9. Błędy zaokrąglania liczb rzeczywistych
    7. Typ wartości logicznych i operatory logiczne
      1. Operatory porównania i relacji
      2. Operatory logiczne
    8. Znaki i ciągi znaków
      1. Typ string
        1. Łączenie ciągów
        2. Porównywanie ciągów
        3. Wyszukiwanie w ciągach
        4. Manipulowanie ciągami
    9. Tablice
      1. Domyślna inicjalizacja elementów tablic
      2. Tablice wielowymiarowe
        1. Tablice regularne
        2. Tablice wyszczerbione
      3. Wyrażenia uproszczonej inicjalizacji tablic
    10. Zmienne i parametry
      1. Stos i sterta
        1. Stos
        2. Sterta
      2. Przypisania oznaczone
      3. Wartości domyślne
      4. Parametry
        1. Przekazywanie argumentów przez wartość
        2. Modyfikator ref
        3. Modyfikator out
        4. Modyfikator params
        5. Parametry opcjonalne
        6. Argumenty nazwane
      5. Niejawne typowanie zmiennych lokalnych (var)
    11. Operatory i wyrażenia
      1. Wyrażenia przypisania
      2. Priorytety i łączność operatorów
        1. Priorytet
        2. Operatory z łącznością lewostronną
        3. Operatory z łącznością prawostronną
      3. Tabela operatorów
    12. Instrukcje
      1. Instrukcje deklaracji
        1. Zmienne lokalne
      2. Instrukcje wyrażeniowe
      3. Instrukcje warunkowe
        1. Instrukcja if
        2. Klauzula else
        3. Zmiana przepływu sterowania za pomocą nawiasów klamrowych
        4. Instrukcja switch
      4. Instrukcje iteracyjne
        1. Pętle while i do-while
        2. Pętle for
        3. Pętle foreach
      5. Instrukcje skoku
        1. Instrukcja break
        2. Instrukcja continue
        3. Instrukcja goto
        4. Instrukcja return
    13. Przestrzenie nazw
      1. Dyrektywa using
      2. Reguły obowiązujące w przestrzeniach nazw
        1. Zasięg nazw
        2. Przesłanianie nazw
        3. Niezależne deklaracje przestrzeni nazw
        4. Kwalifikator global::
      3. Synonimy typów i przestrzeni nazw
    14. Klasy
      1. Pola
      2. Metody
        1. Przeciążanie metod
      3. Konstruktory instancji
        1. Niejawne konstruktory bezparametrowe
        2. Konstruktory niepubliczne
      4. Inicjalizatory obiektów
      5. Referencja this
      6. Właściwości
        1. Właściwości automatyczne
        2. Dostępność akcesorów
      7. Indeksery
        1. Implementowanie indeksera
      8. Stałe
      9. Konstruktory statyczne
      10. Klasy statyczne
      11. Finalizatory
      12. Typy i metody częściowe
        1. Metody częściowe
    15. Dziedziczenie
      1. Polimorfizm
      2. Rzutowanie i konwersja referencji
        1. Rzutowanie w górę
        2. Rzutowanie w dół
        3. Operator as
        4. Operator is
      3. Wirtualne funkcje składowe
      4. Klasy i składowe abstrakcyjne
      5. Widoczność składowych dziedziczonych
      6. Pieczętowanie funkcji i klas
      7. Słowo kluczowe base
      8. Konstruktory a dziedziczenie
        1. Kolejność inicjalizacji pól i wywoływania konstruktorów
      9. Przeciążanie a rozstrzyganie wywołań
    16. Typ object
      1. Pakowanie i odpakowywanie
      2. Statyczna i dynamiczna kontrola typów
      3. Metoda GetType() i operator typeof
      4. Wykaz składowych klasy object
      5. Equals, ReferenceEquals i GetHashCode
      6. Metoda ToString
    17. Struktury
      1. Semantyka konstrukcji struktury
    18. Modyfikatory dostępu
      1. Zaprzyjaźnianie zestawów
      2. Ograniczanie dostępności
    19. Interfejsy
      1. Rozszerzanie interfejsu
      2. Jawna implementacja interfejsu
      3. Wirtualne implementowanie składowych interfejsów
      4. Ponowna implementacja interfejsu w klasie pochodnej
    20. Typy wyliczeniowe
      1. Konwersje typów wyliczeniowych
      2. Flagi
      3. Operatory typów wyliczeniowych
    21. Typy zagnieżdżone
    22. Uogólnienia
      1. Typy uogólnione
      2. Metody uogólnione
      3. Deklarowanie parametrów typowych
      4. typeof i niezwiązane typy uogólnione
      5. Domyślne argumenty typowe
      6. Ograniczenia uogólnień
      7. Pochodne typów uogólnionych
      8. Deklaracje uogólnień z odwołaniami do samych siebie
      9. Dane statyczne
      10. Kowariancja
      11. Kontrawariancja
    23. Delegaty
      1. Pisanie metod-wtyczek dla delegatów
      2. Delegaty wielokrotne
      3. Delegaty do metod instancji i metod statycznych
      4. Uogólnione typy delegatów
      5. Delegaty Func i Action
      6. Zgodność delegatów
        1. Wariancja typu wartości zwracanej
        2. Wariancja typów parametrów
        3. Wariancja typów parametrów w delegatach uogólnionych
    24. Zdarzenia
      1. Standardowy schemat zdarzenia
      2. Akcesory zdarzenia
    25. Wyrażenia lambda
      1. Zmienne zewnętrzne w wyrażeniach lambda
        1. Wciąganie zmiennych iteracyjnych
    26. Metody anonimowe
    27. Wyjątki i instrukcja try
      1. Klauzula catch
      2. Blok finally
        1. Instrukcja using
      3. Zgłaszanie wyjątków
        1. Ponowne zgłaszanie wyjątku
      4. Najważniejsze właściwości klasy System.Exception
      5. Najczęstsze wyjątki
    28. Enumeratory i iteratory
      1. Enumeracja
      2. Inicjalizatory kolekcji
      3. Iteratory
      4. Semantyka iteratora
        1. Wielokrotna instrukcja yield
        2. Instrukcja yield break
      5. Składanie sekwencji
    29. Typy z dopuszczalną wartością pustą
      1. Podstawy
        1. Struktura Nullable<T>
      2. Konwersje dla typów dopuszczających wartości puste
      3. Pakowanie i odpakowywanie wartości typów dopuszczających null
      4. Pożyczanie operatorów
        1. Operatory porównania (== i !=)
        2. Operatory relacji (<, <=, >=, >)
        3. Wszystkie pozostałe operatory (+, -, *, /, %, &, |, ^, <<, >>, +, ++, -, --, !, ~)
        4. Mieszanie operatorów typów dopuszczających i niedopuszczających wartości null
      5. Typ bool? z operatorami & i |
      6. Operator ??
    30. Przeciążanie operatorów
      1. Funkcje operatorów
      2. Przeciążanie operatorów porównania i relacji
      3. Własne konwersje jawne i niejawne
    31. Metody rozszerzające
      1. Kaskadowe wywołania metod rozszerzających
      2. Niejednoznaczność i rozstrzyganie niejednoznaczności
        1. Przestrzenie nazw
        2. Metoda rozszerzająca kontra metoda instancji
        3. Metoda rozszerzająca kontra metoda rozszerzająca
    32. Typy anonimowe
    33. LINQ
      1. Podstawy LINQ
        1. Proste zapytanie
        2. Projekcja
        3. Operatory Take i Skip
        4. Operatory zwracające pojedyncze elementy
        5. Operatory agregacji
        6. Kwantyfikatory
        7. Operatory zbiorów
      2. Opóźnione wykonanie
      3. Standardowe operatory zapytań
      4. Kaskadowe operatory zapytań
      5. Wyrażenia zapytaniowe
        1. Składnia wyrażeniowa a składnia kaskadowa
      6. Słowo kluczowe let
      7. Kontynuacje zapytań
      8. Zapytania z wieloma generatorami
      9. Złączenia
        1. GroupJoin
        2. Zip
      10. Porządkowanie
      11. Grupowanie
      12. Operatory OfType i Cast
    34. Wiązanie dynamiczne
      1. Wiązanie statyczne a wiązanie dynamiczne
      2. Wiązanie ze wskazania
      3. Wiązanie językowe
      4. Wyjątek RuntimeBinderException
      5. Reprezentacja typu dynamicznego
      6. Konwersje typów dynamicznych
      7. var a dynamic
      8. Wyrażenia dynamiczne
      9. Rozstrzyganie przeciążeń składowych dynamicznych
      10. Funkcje niedynamiczne
    35. Atrybuty
      1. Klasy atrybutów
      2. Nazwane i pozycyjne parametry atrybutów
      3. Obiekt docelowy atrybutu
      4. Nadawanie wielu atrybutów
      5. Definiowanie własnych atrybutów
      6. Odwołania do atrybutów w czasie wykonania
    36. Atrybuty wywołania
    37. Funkcje asynchroniczne
      1. Słowa kluczowe await i async
      2. Zachowanie lokalnego kontekstu
      3. Pisanie funkcji asynchronicznych
        1. Zwracanie Task<TResult>
      4. Współbieżność
      5. Asynchroniczne wyrażenia lambda
    38. Wskaźniki i kod nienadzorowany
      1. Elementarz wskaźników
      2. Kod nienadzorowany
      3. Instrukcja fixed
      4. Operator dostępu do składowej przez wskaźnik
      5. Tablice
        1. Słowo kluczowe stackalloc
        2. Bufory o stałym rozmiarze
      6. Typ void*
    39. Dyrektywy preprocesora
      1. Ostrzeżenia i pragma
    40. Dokumentacja XML
      1. Standardowe znaczniki dokumentacji XML
  3. A. autorach
  4. Indeks
  5. Copyright