Jan Bródka - strona główna


Programowanie 3 zaawansowane - język C#


Strona przedmiotu w systemie usos


Materiały przygotowane w ramach projektu NERW2


Elementy C++


Testy jednostkowe


Wykład 1 wstęp, historia języka C#, platforma .NET
wstępny przykład

Wykład 2 klasy - składowe statyczne, modyfikatory dostępu, stałe, pola readonly, dziedziczenie, metody wirtualne,
klasy abstrakcyjne, klasy zapieczętowane, konstruktory, finalizery, operator new
przykład - metody "factory"
przykład - metody wirtualne

Wykład 3 typy referencyjne i bezpośrednie, struktury, krotki, parametry, metody przeciążone, dekonstrukcja
przykład - typy referencyjne i bezpośrednie
przykład - krotki i dekonstrukcja
przykład - parametry
przykład - metody przeciążone

Wykład 4 konwersje typów, operatory is i as, funkcje lokalne, typy wyliczeniowe, przestrzenie nazw
przykład - konwersje i operacje na zmiennych dynamicznych (dynamic)

Wykład 5 definiowanie operatorów i konwerterów, właściwości, indeksatory
przykład - liczby zespolone
przykład - indeksatory

Wykład 6 interfejsy, instrukcja foreach, iteratory yield, metody rozszerzające
przykład - interfejsy
przykład - foreach i iteratory yield
przykład - stos "z foreach":     wersja "ręczna" (bez yield)     wersja z użyciem yield     Main
przykład - metody rozszerzające

Wykład 7 typy uogólnione, typy nullable i non-nullable, operatory związane z wartością null
przykład - typy referencyjne zezwalające i nie zezwalające na wartość null

Wykład 8 delegacje, metody anonimowe, wyrażenia lambda
przykład - sortowanie według różnych kryteriów (delegacje)
przykład - metody anonimowe i wyrażenia lambda
przykład - zmienne zewnętrzne wyrażeń lambda i pętle
przykład - liczby zespolone - definicje składowych za pomocą wyrażeń lambda
przykład - zamiana delegacji wielozakresowej na "złożenie" delegacji

Wykład 9 wyjątki, instrukcje using i lock, checked i unchecked
przykład - wyłapywanie wyjątków
przykład - wyłapywanie wyjątków z klauzulą when (C# 6.0)
przykład - instrukcja using

Wykład 10 programowanie sterowane zdarzeniami, programowanie asynchroniczne i równoległe
przykład - zdarzenia - timer
przykład - zdarzenia - wyścig
przykład - obliczenia synchroniczne
przykład - obliczenia asynchroniczne
przykład - pętle równoległe

Wykład 11 strumienie i pliki, serializacja, klasa string, formatowanie, klasa StringBuilder
przykład - różne metody serializacji
przykład - serializacja "częściowa"
przykład - definiowanie własnych formatów
przykład - porównanie wydajności operacji na obiektach typu string i StringBuilder

Wykład 12 rekordy, wspomaganie obliczeń matematycznych, wyrażenia switch, inne elementy wprowadzone w C# 11/12
przykład - dziwne drzewo binarne (z wykorzystaniem rekordów i z wykorzystaniem klas)
przykład - dziwne drzewo binarne (z wykorzystaniem rekordów wraz z konstrukcją with)
przykład - uogólniona klasa wektor
przykład - wyrażenie swith

Wykład 13 technologia LINQ (część I) - wprowadzenie, wyrażenia kwerendowe, klauzule
przykład - klauzula select
przykład - złączenia (klauzule join i join...into)

Wykład 14 technologia LINQ (część II) - kontynuacje wyrażeń kwerendowych, metody rozszerzające interfejs IEnumerable, technologia PLINQ
przykład - złączenia (w tym krzyżowe)
przykład - porównanie wydajności różnie zapisanych zapytań
przykład - metody rozszerzające interfejs IEnumerable
przykład - zapytania równoległe (PLINQ)

Wykład 15 kod nienadzorowany, łączenie C# z C/C++
przykład - łączenie C# z C/C++:     plik w C++     plik w C#
przykład - wywołania zwrotne C#/C:     plik w C     plik w C#


Slajdy prezentowane na laboratorium