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
C# Static
- arxeiss
- Začátečník

- Registrován: 19. črc 2008
- Bydliště: Krmelín (předměstí Ostravy)
- Kontaktovat uživatele:
C# Static
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
- OndraSter
- Středně pokročilý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: C# Static
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ý?
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ý?
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
- arxeiss
- Začátečník

- Registrován: 19. črc 2008
- Bydliště: Krmelín (předměstí Ostravy)
- Kontaktovat uživatele:
Re: C# Static
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));PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
- OndraSter
- Středně pokročilý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: C# Static
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.
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.
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
- arxeiss
- Začátečník

- Registrován: 19. črc 2008
- Bydliště: Krmelín (předměstí Ostravy)
- Kontaktovat uživatele:
Re: C# Static
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á?
PC : CPU: C2D E5200 2500Mhz @ 3750Mhz a AC Freezer 7PRO MB: Gigabyte GA-P31-DS3L rev.2,1 GPU: ATI Radeon 3650HD 256MB RAM: A-Data Vitesta 2x2GB Zdroj: Forton OEM 400W HDD: Samsung F2 500GB
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
Netbook : Asus EEE CPU: Intel Atom N270 1,6GHz RAM: A-Data 2GB HDD: 250GB 5400ot/min
- OndraSter
- Středně pokročilý

- Registrován: 22. úno 2006
- Bydliště: Praha / ČVUT FIT
- Kontaktovat uživatele:
Re: C# Static
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);
?
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);
?
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32
Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů