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
gcx11
Tvůrce
Avatar
Odpovedá na Jan Troják
gcx11:22.7.2017 15:30

Do proměnné na levé straně, se ukládá výraz z pravé strany.

pocetSten = this.pocetSten;

Do proměnné si uložíš hodnotu z objektu, ale po opuštění metody se proměnná přestane existovat, takže se vlastně kromě zbytečného přiřazení nic nestane.

this.pocetSten = pocetSten;

Naopak toto změní hodnotu uloženou v objektu a proměnná v objektu nadále existuje i po opuštění metody.

Avatar
Marek
Člen
Avatar
Marek:25.7.2017 12:03

Ahoj, v článku se píše: "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."

Je tedy lepší mít pro každou instanci vlastní privátní random nebo ten random udělat statický, aby se opravdu vytvořil pouze jednou ?

Díky za názory.

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Marek
David Hartinger:25.7.2017 12:30

Když jsi to odcitoval, tak si to přečti ještě jednou. Je tam napsané "jednu sdílenou", ne "pro každou instanci vlastní".

Odpovedať
New kid back on the block with a R.I.P
Avatar
Odpovedá na Marek
Neaktivní uživatel:25.7.2017 12:40

Jednu sdílenou pro všechny instance (mělo by tam asi být např. do privátního statického atributu pomocí statického konstruktoru). Pokud uděláš pro každou instanci Kostky jiný Random objekt, riskuješ, že když vytvoříš dvě kostky těsně po sobě, že budou vracet stejná čísla.

Odpovedať
Neaktivní uživatelský účet
Avatar
Marek
Člen
Avatar
Odpovedá na Neaktivní uživatel
Marek:25.7.2017 13:39

Ahoj Davide, Lukáši,

díky za rychlou odpověď. Hledal jsem si něco o statickém konstruktoru a dle toho napsal ukázku třídy níže, doufám, že to není úplná blbost :-)

class GeneratorVet
    {
        private static Random random;

        static GeneratorVet()
        {
            random = new Random();
        }
      // Zde bude následovat další kód - vlastnosti, standardní konstruktor a metody ?
    }
Avatar
Odpovedá na Marek
Neaktivní uživatel:25.7.2017 14:01

Je to v pořádku. Bohatě ale stačí:

class GeneratorVet
    {
        private static Random random = new Random();

      // Zde bude následovat další kód - vlastnosti, standardní konstruktor a metody ?
    }

Je v tom rozdíl, kterým se absolutně nemusíš zabývat, ale kdyžtak: http://csharpindepth.com/…eldinit.aspx

Odpovedať
Neaktivní uživatelský účet
Avatar
Marek
Člen
Avatar
Odpovedá na Neaktivní uživatel
Marek:25.7.2017 14:19

Přesně tak jsem to chtěl původně napsat. Už vím, že v tom nějaký rozdíl je, tak se tím musím zabývat, dokud to nepochopím :)

Díky za super rady a odkaz na zajímavé čtení.

Avatar
Dan Golas LegoIas:16.8.2017 1:13

Myslím že by bylo dobré doplnit, jak to vlastně je s tím statickým generátorem. Je to jen malá úprava v programu a vzhledem k tomu že budeme používat hned dvě kostky, je to ideální příležitost si to vysvětlit. Navíc většina lidí se tu stejně pozastaví a bude to hledat po svém, jako třeba já. :D
Mimochodem vaše návody mi moc pomáhají a za to vám děkuji. :)

Avatar
pocitac770
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
pocitac770:16.8.2017 2:47

Sem se právě ani statika netahá, David ji okrajově vysvětluje až později, to jsou zase ty konspirační teorie v komentech...
To, co tam bylo napsáno odkazuje na návrh celé aplikace po dokončení, tedy to, že si vytvoříme jednu kostku, logicky s jedním Ranodm objektem, a tu předáváme všem "uživatelům" - jedna stačí na celý program... Tak je to řešeno, aby se začátečníci zabývat statikou, která to celé ještě více zamíchá, zvláště, když jsou teprve v základech OOP...

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.