C# Cz.7 Refleksja, Atrybuty krzysiek.fediuk@gmail.com.

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

C++ wykład 4 ( ) Przeciążanie operatorów.
Ćwiczenie (1) Dostosuj poniższy program do potrzeb zdefiniowanych w treści programu zaliczeniowego: #include void dodaj(){}; void edytuj(){}; void usun(){};
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas. 2 Wzorce Często pojawia się konieczność pisania podobnych funkcji lub klas operujących na argumentach.
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas Tablica asocjacyjna Składowe statyczne.
Wzorce.
Prowadzący: mgr inż. Elżbieta Majka
Static, const, volatile.
Generics w .NET 2.0 Łukasz Rzeszot.
PROGRAMOWANIE STRUKTURALNE
Wydajne aplikacje na platformie .NET
Visual Studio Codename „Orcas”, LINQ
Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa.
Internet Communication Engine
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Dziedziczenie i jego rodzaje
.NET Remoting Łukasz Zawadzki.
Test Doubles Adam Gabryś , v1.1,
Tablice, listy, obiekty w C# i nie tylko!
Instytut Tele- i Radiotechniczny WARSZAWA
C# cz.3 Obiektowość w C# Krzysztof Fediuk
Programowanie obiektowe III rok EiT
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
C# Platforma .NET CZ.3 Kuba Ostrowski.
Warsztaty C# Część 6 Grzegorz Piotrowski Grupa .NET PO
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Systemy zarządzania treścią Wykład 5
Technologie Programowania seminarium
Prasek Aneta, Skiba Katarzyna. Funkcje stałe const to takie funkcje, które nie mogą modyfikować stanu obiektu. Oznacza to, że funkcja stała nie może zmieniać.
Kurs języka C++ – wykład 3 ( )
Kurs języka C++ – wykład 9 ( )
Programowanie w języku C++
J A V A S C R I P T Obiekty Opracowała: Anna Śmigielska.
Programowanie zaawansowane
Programowanie zaawansowane
Waldemar Bartyna 1 Programowanie zaawansowane Strukturalna obsługa wyjątków.
Responsywne aplikacje w Windows 8 i.NET 4.5 Jakub Binkowski.
U innych działa ;( Debuggowanie startu aplikacji Arkadiusz Kocjan.
Kurs języka C++ – wykład 4 ( )
Technologie internetowe i mobilne
Opracowanie mgr Karol Adamczyk
Waldemar Bartyna Pytania egzaminacyjne 1.
Platforma .Net.
Łukasz Bieszczad Mateusz Gałązka Karol Włodarek
Programowanie Zaawansowane
Zestaw pytań nr. 3 Typy generyczne Wyjątki OPRACOWALI: JAKUB GRYCZEWSKIKINGA ROSA DANIEL KAPTEJNYWOJCIECH ŁĘCZYCKI
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
Waldemar Bartyna Pytania egzaminacyjne 1.
Pakiety numeryczne Skrypty, funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
Programowanie Obiektowe – Wykład 6
Przypomnienie wiadomości – kilka zadań
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Typy wyliczeniowe, kolekcje
Kurs języka C++ – wykład 3 ( )
Programowanie Obiektowe – Wykład 5
T. 18. E Proces DGA - Działania (operatorka).
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
Programowanie Obiektowe – Wykład 2
PGO Interfejsy Michail Mokkas.
PGO Dziedziczenie Michail Mokkas.
PGO Przeciążanie metod i konstruktorów
Object vs. class (rozdzial 13 The NEURON book)
Zapis prezentacji:

C# Cz.7 Refleksja, Atrybuty krzysiek.fediuk@gmail.com

Agenda Przypomnienie zeszłego semestru Co to jest refleksja? Refleksja w C# Pierwsze zadanie Atrybuty Do dzieła!

Przypomnienie Słowa kluczowe w C# Co to polimorfizm? Jak go osiągnąć MSDN Twoim przyjacielem http://msdn.microsoft.com/ en-us/library/gg145045.aspx Ewentualnie resharper…

Przypomnienie - Kolekcje Pętla foreach IEnumerable List, Dictionary List<T>, Dictionary<T,U>

Przypomnienie – IO File, Directory StreamReader, BinaryReader

Przypomnienie – pytania?

Co to jest refleksja? RTTI – RunTime Type Information Czy zmienna jest typu int czy string? 1 vs ”1” Refleksja pozwala w łatwy sposób zarządzać kodem tak, jakby był danymi.

Refleksja w C# Type Kompletna informacja o typie: GetType() typeof() Nazwa Rodzaj Pola, metody, zdarzenia Atrybuty

Refleksja w C# MethodInfo ConstructorInfo Invoke Nazwa Parametry Zwracany typ Klasa gdzie była zadeklarowana Itp… ConstructorInfo Podobnie Invoke Wywołanie metody lub stworzenie obiektu

Pozostałe Typeof(string[]) Wartości enum’ów GetElementType() Wartości enum’ów Getery i Setery dla property Parametry generyczne

StackTrace Dobieranie się do metod wyżej Wykorzystywane w logowaniu new StackTrace(); Wykorzystywane w logowaniu st.GetFrame([1,2,,n]).Name I profilowaniu Kosztowne!

Pierwszy program Parametry linii poleceń Stwórzcie klasę ConsoleApp W niej metodę która przyjmuje obiekt klasy dziedziczącej i args Jak to zrobić statycznie a jak niestatycznie? Sparsować argumenty i ustawić wszystkie property w przekazanym obiekcie Stworzyć właściwą klasę aplikacji i załadować parametry

Atrybuty Metadane w kodzie Można dodawać praktycznie na wszystkim Przykłady [Serializable] [Obsolete] [STAThread] By definiować własne dziedziczymy z klasy Attribute Można dodać [AtributeUsage]

Do dzieła Poprzedni program ma pewne wady: Dodajcie atrybuty Wszystkie property są jednakowo traktowane int Size vs int AccountBalance Dodajcie atrybuty ConsoleParam(object defaultValue) ConsoleValidator(Type validator) Zmieńcie metodę parsującą by dostosować ją do nowych atrybutów