Stránka 1 z 1
C# Static
Napsal: čtv 5. lis 2009, 21:29
od arxeiss
Na škole se učím C# a absolutně nechápu význam operátoru nebo jak to nazvat Static. Jediné co chápu že ve statické metodě, třídě apod nemůžu používat proměnné, metody atd které nejsou statické. Nevím jestli vůbech chápu dobře to co jsem teď napsal, ale prostě nechápu význam, použití. Zatím děláme v Consoli a tam je Main statická, takže asi budu muset z ní volat pouze statické metody...
Je na netu nějaký článek kde je to napsané tak abych to pochopil? Seru se s tím už dlouho a furt tomu nerozumím. Díky za jakoukoli pomoc. Na googlu jsem hledal, něco málo jsem našel a tam jsem pochopil co jsem napsal nahoře
Re: C# Static
Napsal: čtv 5. lis 2009, 21:40
od OndraSter
Jednoduše řečeno... statické metody lze volat bez vytvoření instance objektu. Tzn když budeš mít:
static public int foo () { return 123; }
public string hello () { return "Hello World"; }
tak pro zavolání foo ti stačí
int vysledek = mojeTrida.foo();
kdežto pro hello potřebuješ:
mojeTrida trida = new mojeTrida();
string vysledek = trida.hello();
Jasný?
Re: C# Static
Napsal: čtv 5. lis 2009, 21:45
od arxeiss
Jo, toto jsem z toho tvojeho pochopil. A na co je to Static vůbec? On nám to vysvětloval že se ta třída, metoda nevytvoří tím pádem tam nemůžeš nikdy vytvořit objekt. Ale v našem jednom příkladě ve statické metodě jsme použili toto
Kód: Vybrat vše
seznam.Add(new Zbozi("Kolo", 1000));
Re: C# Static
Napsal: čtv 5. lis 2009, 22:09
od OndraSter
Pokud "seznam" je vytvořený na začátku metody tak nevidím důvod, proč by to nemělo jít.
Statické metody nemají instanci objektu => nemůžou přistupovat k proměnným či metodám ve své třídě (nejsou-li opět statické; nebo si musíš v dané statické vytvořit instanci objektu a pak volat mujObjekt.nestatickaMetoda() ), neboť se nevolá konstruktor => nic jako this neexistuje.
Re: C# Static
Napsal: čtv 5. lis 2009, 22:14
od arxeiss
Já jsem neřekl že to nefunguje. Díky za snahu, trochu jsem to pochopil dále, ale furt nevidím důvod používat static. Je v tom když je to static nějaký fígl nebo proč se to používá?
Re: C# Static
Napsal: čtv 5. lis 2009, 23:52
od OndraSter
Static by se dalo říci je prostě metoda, kterou nechceš mít v hlavní třídě programu ale jinde a nechceš kvůli ní vytvářet instanci objektu atd. Nesežere to tolik paměti.
Představ si, že bys musel mít toto:
Math matika = new Math();
int vysledek = matika.Sqrt(123);
Není lepší udělat rovnou
int vysledek = Math.Sqrt(123);
?
