NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 12 - Vlastnosti

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
United121CZ
Člen
Avatar
United121CZ:16.6.2013 21:47

Ahoj, mám dotaz pokud napíši (do třídy Vlastnosti)

//konstruktor
public Vlastnosti(int cisloTest)
        {
            CisloTest = cisloTest;
        }
private int CisloTest { get; private set; }
private bool jeSude;
public bool JeSude
        {
            get
            {
                return jeSude;
            }
            set
            {
                jeSude = (CisloTest%2==0);
            }
        }

a v main mám toto:

Vlastnosti s = new Vlastnosti(15);
Console.WriteLine(s.JeSude);

tak to vyhodí chybu :

The accessibility modifier of the 'VlastnostiAStatika.Vlastnosti.CisloTest.set' accessor must be more restrictive than the property or indexer 'VlastnostiAStatika.Vlastnosti.CisloTest'

tak jsem potom změnil private int CisloTest { get; private set; } -> private int CisloTest { get; set; } a ono to šlo ... ale proč ? (btw. vim že ten test "sudosti" je stupidní :) )

Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na United121CZ
Petr Nymsa:16.6.2013 21:54

Kromě stupdidního testu je to celé divné ;). Každopádně přečti si ještě jednou k čemu slouží vlastnosti. K čemu tedy deklarovat privátní vlastnost a ještě privátní set ? Pokud chceš mít set čistě privátní napiš to takhle

public int Cislo**{get; private set;}**

Jinak název třídy Vlastnosti také není asi úplně nejlepší.. k čemu to má sloužit ?

Editováno
Odpovědět
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
United121CZ
Člen
Avatar
United121CZ:19.6.2013 22:03

No nevim jestli jsem to pochopil dobře, ale vlastnosti slouží k bezpečnému zadávání (měnení) promněných (jejich změna může vyvolat "jinou změnu" na jiné promněnné) - no je pravda že v tomto příkladu je to docela k ničemu aby to bylo privátní ... už to asi vidim :D ale pro jistotu -> k čemu teda jsou ty vlastnosti podle tebe (a ano článek jsem četl několikrát) ?

EDIT : zapomnel jsem dal ze to je reakce a jako koukam tak to uz asi nezmenim

Editováno
Avatar
Fleury#93
Člen
Avatar
Fleury#93:19.11.2013 12:45

Me nefunguje uplne ten nekratsi zapis:

Mam tridu uzivatel:

class Uzivatel
    {
        private string jmeno;

        public Uzivatel(string jmeno)
        {
            this.jmeno = jmeno;
        }

        public string Jmeno { get; set; }
}

A v mainu to chci pouzit:

Uzivatel u1 = new Uzivatel("Ivos");
            Console.WriteLine(u1.Jmeno);
            Console.ReadKey();

Dopadne to tak ze se do console nic nevypise :(

Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Fleury#93
David Hartinger:19.11.2013 14:26

Protože to máš špatně. Má to být takhle:

class Uzivatel
     {
         public string Jmeno { get; set; }

         public Uzivatel(string jmeno)
         {
             Jmeno = jmeno;
         }


 }
Odpovědět
New kid back on the block with a R.I.P
Avatar
Rosemary
Člen
Avatar
Rosemary:15.2.2014 12:14

Ahoj, ve větě
"Pokud si přejeme, aby vlastnost nešla mimo třídu měnit, označíme getter jako privátní"
Nemá být setter ? ;)
Jinak dobrý článek :)

Avatar

Neregistrovaný
Avatar
:19.2.2014 18:02

Niečo som nepochopil, alebo namiesto:
s.vek = 15;
s.muz = false;
by malo byť:
s.Vek = 15;
s.Muz = false;

Avatar
Odpovídá na
Zdeněk Pavlátka:19.2.2014 18:07

Máš pravdu, asi jde o překlep.

Odpovědět
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar

Neregistrovaný
Avatar
:23.2.2014 12:30

Ďakujem

Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:21.3.2014 17:18

Díky, opraveno.

Odpovědět
New kid back on the block with a R.I.P
Nejnovější komentáře jsou na konci poslední stránky.
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 10 zpráv z 99.