Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 4. diel - Hracia kocka v C# - Zapuzdrenie a konštruktor

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Robert
Člen
Avatar
Robert:3.11.2016 13:31

Aký rozdiel je medzi metódou ToString() a Console.Write­Line("Kocka s {0} stenami.", sesthran.Vrat­PocetStien()); ? Efekt je rovnaký

Avatar
Robert
Člen
Avatar
Odpovedá na vfsdfsdfdsf
Robert:3.11.2016 14:08

Takže pomôže len dať tam sleep?

Avatar
Odpovedá na Robert
Michal Štěpánek:3.11.2016 17:51

Napsal jsi ten dotaz trochu nešťastně. Metoda "ToString()" vrací textovou reprezentaci objektu, kdežto

Console.WriteLine("Kocka s {0} stenami.", sesthran.VratPocetStien())

vypíše, kolik má daná kostka stěn...

Odpovedať
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Pavel Šrytr
Člen
Avatar
Odpovedá na Robert
Pavel Šrytr:17.12.2016 13:31

metoda ToString() navrátí text, kdežto Console.Write­Line("") vrátí výstup na konzoli

Avatar
BluPri
Člen
Avatar
BluPri:26.3.2017 17:53

Ahoj, chtěl bych se zeptat, mohl by mi někdo prosím názorně vysvětlit následující text:

Dejte si pozor, abyste netvořili generátor náhodných čísel v metodě, která má náhodné číslo vracet, tedy že by se pro každé náhodné číslo vytvořil nový generátor. Výsledná čísla pak nejsou téměř náhodná nebo dokonce vůbec. Vždy si vytvořte jednu sdílenou instanci generátoru (např. do privátního atributu pomocí konstruktoru) a na té potom metodu Next() volejte.

Ps: Ukázka by byla dobrá :-)

Avatar
Jakub Vanko
Člen
Avatar
Odpovedá na BluPri
Jakub Vanko:26.3.2017 22:35

Ja som to pochopil tak, že ide o to, aby si nevytvoril pri každom volaní metódy novú instanciu triedy random

//Toto je zle
public class Kocka
{
        private Random random;

        public int hod()
        {
                random = new Random();
                return random.Next(1, pocetSten + 1);
        }
}

Ale namiesto toho si máš vytvoriť jednu instanciu tejto triedy (napr. v konstruktore) a tú používať pri každom volaní tejto metódy

//A takto by to malo byť správne
public class Kocka
{
        private Random random;

        public Kocka()
        {
                random = new Random();
        }

        public int hod()
        {
                return random.Next(1, pocetSten + 1);
        }
}
Avatar
BluPri
Člen
Avatar
Odpovedá na Jakub Vanko
BluPri:27.3.2017 15:59

Díky, už to chápu :-)

Avatar
Vít Nekula
Člen
Avatar
Vít Nekula:8.6.2017 12:43

Chtěl bych se zeptat, proč hned na začátku je ve třídě kostka:

/// <summary>
/// Generátor náhodných čísel
/// </summary>
private Random random;

Co si tím docílíme? Určitě to je primitvní otázka, ale v objektech a v C# se teprve začínám orientovat, takže mě prosím omluvte.

Avatar
Vít Nekula
Člen
Avatar
Odpovedá na Vít Nekula
Vít Nekula:8.6.2017 12:54

Omlouvám se... stačí si to 10x přečíst a projít a člověk to pochopí...

Avatar
Jan Troják
Člen
Avatar
Jan Troják:22.7.2017 11:41

Ahoj,
mám dotaz.

Proč toto nefunguje?

pocetSten = this.pocetSten;

A toto ano?

this.pocetSten = pocetSten;
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 159.