Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Avatar
NoThing
Neregistrovaný
Avatar
NoThing:16.10.2013 18:01

Ahoj. Mám třídu Player a od ní dědí třídy Warrior a Magician. Do listu typu Player vkládám různě Warriora nebo Magiciana. Chci udělat metodu boj Warrior a Magician mají jiné vlastnosti. Teď to dělám tak, že zjistím jakého typu je třída v listu (if(PlayerList[x] is Warrior) podle toho prvek z listu přetipuju , ale tímto způsobem musím udělat 3 přetížené metody, vím že to jde udělat bez duplikace, ale nemůžu přijít na to jak. Děkuji za rady.

 
Odpovědět
16.10.2013 18:01
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na NoThing
David Čápka:16.10.2013 18:07

Typ rozpoznávat vůbec nemusíš, prostě zavoláš boj a každý bude bojovat svým způsobem.

Nahoru Odpovědět
16.10.2013 18:07
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! :)
Avatar
NoThing
Neregistrovaný
Avatar
Odpovídá na David Čápka
NoThing:16.10.2013 18:15

Možná jsem to špatně vysvětlil. Chi metodu Boj, která bude mít dva vstupní parametry Magician vs Magician nebo Magician vs Warrior nebo Warrior vs Warrior, jenže list je typu player, když udělám public static void boj(Player Player1, Player Player2) tak se nedostanu k vlastnostem Warriora a Magiciana takže do metody musím vkládat přetipovaného Playera. Takhle ale musím zdlouhavě zjišťovat tip a musím mít 3 metody.

 
Nahoru Odpovědět
16.10.2013 18:15
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na NoThing
Jan Vargovský:16.10.2013 18:19

Tak jí implementuj už do té třídy Player a pak nemusíš přetypovávat.

 
Nahoru Odpovědět
16.10.2013 18:19
Avatar
vitamin
Člen
Avatar
Odpovídá na NoThing
vitamin:16.10.2013 18:32

To co chces sa da implementovat pomocou multimetod (niekedy su volane Openmethods). V C# sa daju nasymulovat takto: http://blogs.msdn.com/…dynamic.aspx

Rychlost takeho kodu nebude bohvie aka...
Lepsie bude asi zmenit dizajn aplikacie.

 
Nahoru Odpovědět
16.10.2013 18:32
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na NoThing
David Čápka:16.10.2013 18:33

To vymýšlíš nějakou hloupost. Podívej se na tohle: http://www.itnetwork.cz/…rena-s-magem

Nahoru Odpovědět
16.10.2013 18:33
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! :)
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 6 zpráv z 6.