Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 80% výuky zdarma!
https://www.itnetwork.cz/csharp
Avatar
Michael Olšavský:4.1.2014 21:32

Ahoj všichni,
zkoumal jsem třídy .NET a docela mě zarazilo, proč se v běžných kódech nesetkávám s atributy (akorát v ASP.NET) a v knihovnách je toho naopak tolik. Je jen málo metod, které by se jim vyhnuly. K čemu jsou tedy tak důležité? Zdá se mi to pouze jako doplňková informace, která nemá moc velký význam narozdíl od xml dokumentace.

Zároveň se chci zeptat, zdali jste někdy používali reflexy a k čemu se to přesně hodí. Pokud jsem to pochopil, mohu se napojit na jakoukoliv knihovnu (či proces?) a zjistit si o něm všechno info nebo vytvořit novou instanci run-time?

 
Odpovědět
4.1.2014 21:32
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michael Olšavský
David Čápka:5.1.2014 10:13

Reflexe ti umožňuje zkoumat zdrojový kód programu za jeho běhu a dokonce ho i měnit (rozšiřovat). Reflexí můžeš nahradit hnusné switche podobné tomuto:

switch (akce)
{
   case "krok": karel.Krok(); break;
   case "vlevovbok": k.VlevoVbok(); break;
   // dalších 1000 příkazů
}

Nad metody si dáš nějaký vlastní atribut, třeba volatelný. Při spuštění aplikace si projedeš třídu a přes reflexi najdeš metody s tímto atributem, které si uložíš. Dále je pak už jen voláš podle toho, co ti přišlo ve stringu. Ušetříš opravdu spoustu redundantního kódu.

Nahoru Odpovědět
5.1.2014 10:13
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:5.1.2014 10:27

Na podobném principu je v Javě postaven enum. System.in, System.out a System.err jsou také enum.

Nahoru Odpovědět
5.1.2014 10:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.