Example #1
0
        ////je možné mít i strukturu ve struktuře (při použití je potřeba odpoznámkovat nastavení proměnné bod v konstruktoru)
        //public Bod bod;


        //konstruktor má stejné jméno jako struktura/třída
        //v konstruktoru musí být všechny členské proměnné ve struktuře přiřazené, pokud nejsou nepůjde kód přeložit
        public Bod3D(int x, int y, int z)
        {
            //slovo "this" (doslova toto/tato) určuje aktuální strukturu/třídu, ve které se konstruktor/metoda/členská-proměnná nachází
            //v aktuálním případě by se "this.x = x;" dalo přeložit jako "v této struktuře (tj. Bod3D) nastav členskou proměnnou 'x' na hodnotu vstupního parametru 'x'"
            //odlišení pomocí "this" je v tomto případě nutné, protože proměnné mají stejný název - jinak je možné napsat jen název členské proměnné, např. "ident" nemá v konstruktoru žádný jiný ekvivalent, takže je možné ho psát bez "this" (přesto se doporučuje this napsat pro lepší čitelnost a okamžitou informaci, že se jedná o členskou proměnnou nebo metodu)
            this.x = x;
            this.y = y;
            this.z = z;

            //použití statické metody v konstruktoru - statická metoda se používá zapsáním jména struktury/třídy a poté jejím jménem
            ident = Bod3D.RandomString(10);

            //pro nestatickou metodu
            //v případě použití nestatické metody se v konstruktoru při přiřazování identu rovnou z metody zobrazí chyba - nestatické metody je možné ve strukturách použít až když jsou nastaveny všechny členské proměnné, protože i v těchto metodách na ně můžete přístupovat a číst je
            //kompilátor nerozpozná, že tato metoda nijak neoperuje s členskými proměnnými a jen vrací string - pokud nevěříte, zapoznámkujte předchozí přiřazení do ident a nechte jen ten poslední
            ////ident = String.Empty;   //pokud by bylo potřeba použít nestatickou metodu, je nutné první přiřadit všem členským proměnným nějakou hodnotu, např. prázdný string
            //ident = this.RandomStringNestatic(10);


            ////vytvoření bodu struktury Bod (při použití je potřeba odpoznámkovat proměnnou bod před konstruktorem)
            //bod = new Bod();
        }