NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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 – Lekce 10 - 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
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í :) )

 
Odpovědět
16.6.2013 21:47
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 16.6.2013 21:54
Odpovědět
16.6.2013 21:54
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 19.6.2013 22:08
 
Odpovědět
19.6.2013 22:03
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 :(

 
Odpovědět
19.11.2013 12:45
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
19.11.2013 14:26
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 :)

 
Odpovědět
15.2.2014 12:14
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;

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

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

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

Neregistrovaný
Avatar
:23.2.2014 12:30

Ďakujem

 
Odpovědět
23.2.2014 12:30
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:21.3.2014 17:18

Díky, opraveno.

Odpovědět
21.3.2014 17:18
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 10 zpráv z 99.