Nowoczesny C#
Zarejestruj tutaj lub napisz bezpośrednio
Opis
Program kursu obejmuje zagadnienia związane z nowoczesnym językiem C#, pozwalającym na tworzenie rozwiązań z wykorzystaniem zarówno obiektowego jak i funkcyjnego podejścia. Celem szkolenia jest przedstawienie wybranych elementów programowania funkcyjnego oraz ich powiązanie z konkretnymi elementami języka C# kilku ostatnich wersji.
Czas trwania: 3 dni
Szczegóły
- C# 2 / C# 3 LINQ
- Typy generyczne, delegaty, iteratory
- Metody rozszerzające, wyrażenia lambda, inicjalizator obiektów/kolekcji, typy anonimowe, var
- Operatory LINQ
- C# 6
- Inicjalizatory automatycznie implementowanych właściwości
- Operator nameof
- Inicjalizator indexerów
- Interpolacja napisów
- Propagator wartości null
- Filtry wyjątków
- Jedno wyrażeniowe składowe klasy
- Await w sekcji catch/finally
- Statyczny import
- C# 7
- Krotki oraz dekonstrukcje
- Dopasowanie do wzorca
- Funkcje lokalne
- Zmienne deklarowane za pomocą out
- Throw jako wyrażenie
- C# 7.1, 7.2, 7.3
- Asynchroniczna metoda Main
- Dopasowanie do wzorca i typy generyczne
- Wnioskowanie nazwanych krotek
- Modyfikator dostępu private protected
- C#8
- Rozszerzenia dla dopasowania do wzorca
- Nullowane typy referencyjny
- Asynchroniczne strumienie
- Domyślnie implementowane składowe interfejsów
- Switch jako wyrażenie
- Przedziały
- C#9
- Rozszerzenia dla dopasowania do wzorca
- Rekordy
- Settery typu init
- Start aplikacja bez Program.Main
- Operator new bez nazwy typu
- Argument wyrażenia lambda _
- Wsparcie dla metod rozszerzających GetEnumerator dla pętli foreach
- C#10
- Usprawniania dla rekordów, typów wartościowych, wyrażeń lambda oraz dekonstrukcji
- Rozszerzenia dla dopasowania do wzorca
- Przestrzenie nazw o zasięgu plikowym oraz globalne importowanie przestrzeni nazw
- Wybrane elementy programowania funkcyjnego
- funkcja jako wartość, domknięcie, funkcje wyższego rzędu, kompozycja funkcji, częściowe zaaplikowanie argumentów funkcji, “currying”
- leniwa ewaluacja, sekwencje
- imperatywne vs deklaratywne programowanie
- obiektowa vs funkcyjna organizacja kodu
- dopasowanie do wzorca
- algebraiczne typy danych (krotki, rekordy, “sum types”)
- opcjonalność, obsługa błędów
- niezmienniczość, efekty uboczne, czyste funkcje