IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: C# od děděné třídy a použití vlastností v metodách.

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
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 Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger: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
New kid back on the block with a R.I.P
Avatar
NoThing
Neregistrovaný
Avatar
Odpovídá na David Hartinger
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
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na
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
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 Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger: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
New kid back on the block with a R.I.P
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.