Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałMateusz Rysz Został zmieniony 10 lat temu
1
C# Cz.7 Refleksja, Atrybuty
2
Agenda Przypomnienie zeszłego semestru Co to jest refleksja?
Refleksja w C# Pierwsze zadanie Atrybuty Do dzieła!
3
Przypomnienie Słowa kluczowe w C# Co to polimorfizm?
Jak go osiągnąć MSDN Twoim przyjacielem en-us/library/gg aspx Ewentualnie resharper…
4
Przypomnienie - Kolekcje
Pętla foreach IEnumerable List, Dictionary List<T>, Dictionary<T,U>
5
Przypomnienie – IO File, Directory StreamReader, BinaryReader
6
Przypomnienie – pytania?
7
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.
8
Refleksja w C# Type Kompletna informacja o typie: GetType() typeof()
Nazwa Rodzaj Pola, metody, zdarzenia Atrybuty
9
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
10
Pozostałe Typeof(string[]) Wartości enum’ów
GetElementType() Wartości enum’ów Getery i Setery dla property Parametry generyczne
11
StackTrace Dobieranie się do metod wyżej Wykorzystywane w logowaniu
new StackTrace(); Wykorzystywane w logowaniu st.GetFrame([1,2,,n]).Name I profilowaniu Kosztowne!
12
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
13
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]
14
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.