.NET > Obecné

Slovo "Static"

(1/2) > >>

erdt.martin:
Ahoj,

mam dalsi otazku. Uz jsem asi otravnej, ale rad se ucim. Mam nekolik knizek o programovani v C# (ted ctu jednu). Narazil jsem na Static. Nahledl jsem i do ostatnich knizek, ale beztak jsem nenasel zadne srozumitelne vysvetleni, proc pouzivat Static a jak pouzivat static. Koukal jsme se i na google, ale beztak... Mohl by to tu nekdo prosim rozepsat trosku vic srozumitelneji? I s priklady treba :) Dekuji

Mi.Chal.:
Static znamená, že daná vlastnost, metoda atd je vázaná na třídu, místo konkrétní instance. Takže pokud vyrobíš různé instance, tak budou hodnotu sdílet. Příklad je třeba počitadlo počtu vytvoření instancí - v konstruktoru budeš inkrementovat hodnotu property. Kdyby byla instanční, tak tam budeš mít na všech instancích 1. U statické se bude zvětšovat a pro všechny instance bude stejná.

Statické metody se často používají jako náhrada za funkce ve starších prg. jazycích. Třeba File.Exists() - můžeš to volat, aniž bys musel vyrábět instance File.

Morfeus:

--- Citace: Mi.Chal.  28-07-2012, 13:31:53 ---Třeba File.Exists() - můžeš to volat, aniž bys musel vyrábět instance File.

--- Konce citace ---
Trieda File je statická - z nej sa inštancia nedá vytvoriť. Mali ste na mysli zrejme triedu FileInfo, ktorá má vlastnosť Exists.

Mi.Chal.:

--- Citace: Morfeus  29-07-2012, 13:41:58 ---Trieda File je statická - z nej sa inštancia nedá vytvoriť. Mali ste na mysli zrejme triedu FileInfo, ktorá má vlastnosť Exists.

--- Konce citace ---

Neměl, psal jsem příklad statické metody. Jestli od File jdou vytvářet instance není v tomhle kontextu až tak podstatné, pointa byla v tom, že metodu může volat, aniž by ty instance vytvářet musel (a někdy je vytvářet ani nemůže).

Jinak máš samozřejmě pravdu.

erdt.martin:
A jaka je teda vyhoda v tom, ze vytvorim instanci?

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi