spájame
slovenskú
IT komunitu
pridaj sa
Registrácia · Login
FrewCen 7.7.2012
Hodnoť článok:
5 0

C# - 3. diel

Základné príkazy, syntax a práca s C#

Minulý diel vás uviedol do prostredia premenných a typov premenných. V tomto dieli sa dozviete niečo viac o základných operáciach a práciach s počítačom.

Metódy

Ako ste už možno vyrozumeli z predošlých dielov, základmi jazyka C# sú triedy, metódy a objekty. Metódy sú prvkom, ktorý obsahuje akcie v určenom poradí. Metódy samotné plávajú v programe. Čakajú kým budú zavolané. jednotlivé akcie sú oddeľované bodkočiarkou, a v prípade väčšej akcie/operácie sa končia zloženou zátvorkou ('}'), čiže koncom bloku. Samotné metódy svoje operácie nevykonajú, pokým ich niečo nezavolá. Volanie metódy je samo o sebe akcia. Na volanie metódy nie je potrebné žiadne kľúčové slovo, ani príkaz.
Štruktúra volania:

Typ.Metoda(argument1, argument2);

alebo

Objekt.Metoda(argument1, argument2);

Prvé volanie volá statickú metódu (kľúčové slovo static), druhé volá členskú metódu. Rozdiel je jednoduchý. Statická metóda je volaná prostredníctvom typu, v ktorom bola vytvorená a členská metóda prostredníctvom objektu. Predstavme si teda, že operačný systém presne vie ako sa nazýva typ, v ktorom je uložená naša metóda Main a že je napísaný v jazyku C#. Ako by asi vyzeralo volanie?

Program.Main();

Poznámka: Výpis je v skutočnosti úplne nereálny, pretože naša metóda Main prijíma aj argumenty spustenia programu.

Vráťme sa teda do reality. Chceme si teda niečo vypísať. Ako?
My sami vo funkcii Main neovládame vstup a výstup. Neovládame nič okrem toho, čo sa nachádza v bloku alebo v danom type. Ale potrebujeme niečo vypísať. Na to, aby sme to urobili potrebujeme zavolať metódu, ktorá vstup a výstup ovláda. Jedná sa teda o statickú metódu 'Write'(písať, píš, zapíš), ktorá ovláda výstup a je obsiahnutá v statickej triede 'Console'. Volanie funkcie teda bude vyzerať takto:

Console.Write();

Poznámka: Všimnite si bodkočiarku, ktorá ide vždy za volaním. Je veľmi podstatná, bez nej vám kompilátor nahlási chybu.

Jedná sa teda o čisté volanie. Ale má to zádrhel. Metódy môžu v type obsahovať viac variant pod tým istým názvom. Čo znamená, že napríklad metóda Main má 18 variant ktoré sa líšia len typom predaných argumentov.
Argumenty (niekde aj ako skutočné parametre) sú hodnoty alebo premenné predávané danej metóde.
Základné hodnoty v jazyku C#:

  • 1548524 - celé číslo (integer), hocijaké
  • 3.14 - desatinné číslo (floating point number, decimal), hocijaké, musí byť použitá bodka, nie čiarka!
  • 'c' - hocjaké písmeno/znak, musia byť použité apostrofy
  • "ahoj" - reťazec ahoj alebo iný, musia byť použité úvodzovky

Existuje ešte viac druhov hodnôt. Hodnoty sa odlišujú od kľúčových slov a príkazov:

  • static - kľúčové slovo
  • "static" - hodnota - reťazec
  • using - kľúčové slovo
  • "using" - hodnota - reťazec

Teória predávania argumentov je jednoduchá. Stačí napísať hodnoty a oddeľovať ich čiarkou.
Pozor: nemôžete predávať menej alebo viac argumentov ako je napísané v pri vytváraní metódy. Vytváraním metód sa budeme zaoberať neskôr.
Predávanie hodnôt ako argumentov pre metódu Write teda vyzerá takto:

Console.Write("ahoj");
Console.Write(108);
Console.Write(3.1458);

Pozor: metóde nemôžte predať hodnotu iného typu, než prijíma. Jedna z variant metódy Write prijíma reťazec, ďalšia zasa celé číslo. No iné metódy nemusia mať varianty pre niektoré typy a nemusia ich prijať (kompilátor ohlási chybu). Pre to je nutné čítať ďalej.
Napíšte teda do tela metódy Main (medzi zložené zátvorky) tento kód:

Console.Write("Toto je môj prvý program. Čítaj a kochaj sa!");

Program spustite.
A nič sa nestalo. Program zobrazil konzolu a hneď ju zasa skryl. Nie je to chyba. Len sme počítaču nepovedali, aby čakal, kým stisneme Enter. Znova to ale nie sme my, kto ovláda vstup. Zavoláme teda príslušnú statickú metódu Read z triedy Console.

Console.Write("Toto je môj prvý program. Čítaj a kochaj sa!");
Console.Read();

Poznámka: Za povšimnutie stojí, že metóda Read nepreberá žiaden argument.

Ak teraz program spustíte, zistíte že sa vám zobrazil zadaný text a že zaň môžete ešte dopisovať text až do stlačenia tlačidla enter.

Teraz už viete predávať hodnoty ako argumenty a viete volať funkcie. Ako malé cvičenie si skúste program násilne vypnúť hneď po vypísaní.
Na tento účel slúži už spomenutá metóda Exit z triedy Environment. Metóda prijíma jeden argument, a to celé číslo ako statusový kód.

Kedže premenné si môžu vymieňať hodnoty, malo by byť možné predávať premenné aj ako argumenty volania metódy. Skúste si spustiť tento kód:

string uvitaciaSprava = "Vitaj v mojom programe!";
Console.WriteLine(uvitaciaSprava);
Console.Read();

Po úspešnej kompilácii a spustení sa vám na obrazovku vypíše 'Vitaj v mojom programe!'.
Ak je teda možné predávať hodnoty metódam, logicky by malo byť možné brať hodnoty, ktoré metóda vráti. Metóda Write nevracia žiadnu hodnotu (typ void, podobne ako metóda Main). Ale metóda ReadLine vracia prečítaný reťazec. Skúsme to to.

string retazec;

Console.Write("Vitajte v mojom programe. Zadajte nejaký text: ");
retazec = Console.ReadLine();
Console.WriteLine("Zadali ste: " + retazec.ToString());
Console.ReadLine();

Ako vidíte, metóda ReadLine bola využitá ako premenná a vrátila zadaný riadok textu.
Poznámka: Spájanie reťazcov sa dá uskutočniť aj operátorom sčítania (+). Ak by bola premenná retazec je typu int a pod., bolo by potrebné využiť členskú metódu ToString pre pretypovanie čísla na reťazec. Metóda ToString vracia reťazec a obsahuje ju každý typ naprogramovaný v jazyku C#, kedže patrí to triedy Object. V tomto kóde nebola vôbec potrebná, ale poslúžila ako názorná ukážka metódy ToString.

Teraz, keď už ovládate základné volania metód v jazyku C#, môžete prejsť k menším ale podstatným dodatkom jazyka.

Komentáre

Na záver si uvedieme malú možnosť jazyka C#.
Kódy v nejakom konkrétnom jazyku sú písané jednotnou syntaxou. Jednotlivé jazyky však umožňujú pre prehľadnosť pridávať a odoberať medzery medzi jednotlivými časťami, kde medzery nehrajú rolu. Samozrejme v kóde sa dajú definovať aj vlastné premenné a to s vlastným názvom. Podobne je to aj s typmi, metódami... Aj rôzne úlohy sa môžu vykonať rozdielne. A na to, aby jeden programátor pochopil druhého sú tu komentáre. V jazyku C# existujú tri druhy komentárov.

Jednoriadkový komentár

Console.Write("ahoj"); //tu je komentár, tento text sa neprekladá
tu je text, ktorý sa prekladá

Jednoriadkové komentáre sa začínajú dvojitými lomenými čiarami (//) a končia koncom riadka. Do jednoriadkových komentárov nich sa zvyčajne umiestňuje jednoduchý komentár popisujúci operáciu na danom riadku.

Viacriadkový komentár

Console.Write("ahoj"); /*tu je komentár, tento text sa neprekladá
tu je text, ktorý sa neprekladá
*/
tu je text, ktorý sa prekladá

Viacriadkové komentáre sa začínajú lomenou čiarou + hviezdička (/*) a končia hviezdičkou + lomená čiara (*/). Do viacriadkových komentárov nich sa zvyčajne umiestňuje dlhší komentár popisujúci operáciu v danom bloku, alebo v prípade že sa nachádza na začiatku súboru, uvádza o ňom nejaké informácie.

Dokumentačný komentár

///tu sa nachádza dokumentačný komentár z ktorého môže byť
///generovaná dokumentácia

Z dokumentačných komentárov sa zvyčajne generuje dokumentácia do oddeleného súboru. Komentár sa začína trojitou lomenou čiarou (///) a končí koncom riadka. Do týchto komentárov sa zvyčajne vpisujú špeciálne XML značky, ktoré budú popísané neskôr.

Po prečítaní tohoto článku by ste mali mať aspoň základnú predstavu o metódach, typoch, argumentoch a komentároch.

Hodnoť článok:
5 0


8 komentárov k článku:

Komentovať môžu iba prihlásení

Zaregistruj sa cez bezplatnú registráciu alebo použi login cez Facebook (FB Connect)

Prihlás sa tu, ak už máš profil na Zajtra.sk:


Zabudol som heslo

0 0 František Jankura 21.11.2014 21:20:18
Je to super, len tak ďalej a hlavne po lopate tak ako doteraz.
Spokojnosť.
0 0 Andrej Badin 9.7.2012 15:17:23
Tak potom je to OK... Ľudí, čo navštevujú zajtra.sk považujem za nezačiatočníkov (až na pár výnimiek, ktoré potvrdzujú pravidlo).
Keď som uvidel začiatok seriálu, potešil som sa, lebo pohrať sa so C# som chcel už dávno, ale do hĺbky sa s tým budem babrať asi sám.
Tak tých, čo kódiť nevedia, to aspoň z časti nauč, nech sa darí :)
(Ale sledovať letmo budem, možno sa predsa pritrafí aj niečo "zlozitejšie")
0 0 FrewCen 9.7.2012 14:43:48
Takto to má byť. prezrel som si kopu kníh o C# a všetci vysvetľujú rovnakým spôsobom. Najprv to ľahšie, až potom ďalej a ďalej. Poznám dosť kníh pre začiatočníkov a nikde nespomínajú pri tvorbe metód overloading. To je dodatok do riadnejšieho OOP.
0 0 Andrej Badin 9.7.2012 14:11:41
Že je to pre začiatočníkov, tak im to nepodáš tak, ako to má byť? Nemusia to vedieť, len preto, že sú začiatočníci? Týmto spôsobom aj začiatočníkom zostane!

Povedz mi, koľko ľudí začína s manažovaným jazykom, ak to s programovaním myslia vážne? Potom to aj tak vyzerá, soft je mega výkonný...
Nepáčia sa mi tie tvoje vety, lebo sú nepresné, vyjadruješ sa zle... A áno, slovíčka hrajú úlohu, keď si to bude každý nazívať po svojom, potom to bude španielska dedina.

Mudrc si ty, ty učíš, ja som stále blb, ja sa učím...
0 0 FrewCen 9.7.2012 13:01:17
Asi si neuvedomuješ že sa jedná o tutorial pre začiatočníkov. Jasné že viem čo je to overloading, ale netreba to vyťahovať hneď na začiatku, keď ešte ani nevedia, ako sa vytvára metóda.

NEMÔŽEŠ predávať ľubovoľný počet parametrov. Hovoril som: ako je napísané pri vytváraný metódy - čiže jednej. Sústredil som sa na metódu, konkrétne jednu. Hovoril som konkrétne o jednej a o tom, že nemôže presahovať počet formálnych parametrov. Nehovoril som o rôznych variantách.


Skôr ako tunák náš mudrc vytiahne na svet kľúčové slovo 'params', aj v tomto prípade sa jedná o jeden formálny parameter. V tomto prípade ale operátor čiarky oddeľuje jednotlivé časti arrayu.

Keď si sa už raz "učil" programovací jazyk, mal si sa ho učiť poriadne. Vieš keď sa to fláka už pri výbere literatúry (ak vôbec nejaká je), takto to skončí.

Vieš vo všeobecnosti sa v týchto článkoch dá napadnúť mnoho vecí. Kupríkladu:
Metódy sa dajú volať cez delegáty. Volanie cez delegáty pritom vyzerá inak. Je tu tisíc vecí, ktoré sa dajú takto napadnúť. Ja tu však nemôžem rozpísať všetko.

Za všetkými vetami čo si tu dal si stojím, lebo sú pravdivé.
Nechápem zase toto vyjadrenie:
"Nepáči sa mi vetička" .... "Toto sa volá method overloading."
Takže tebe sa nepáči veta len pre to, lebo som tam neuviedol že sa jedná o overloading?

"Pozor: nemôžete predávať menej alebo viac argumentov ako je napísané v pri vytváraní metódy."
Je pravdivá! Jedná sa o vytváranie jednej metódy! Slová "ak máš na to metódu" teda hovoria o konkrétnej situácii, kedy overload existuje. Ale ja som tu hovoril všeobecne.
0 0 Andrej Badin 9.7.2012 10:32:47
Nepáči sa mi vetička "Jedná sa teda o čisté volanie. Ale má to zádrhel. Metódy môžu v type obsahovať viac variant pod tým istým názvom."
Toto sa volá method overloading.

Keď si ten method overloading otvoril (asi nevedome), táto veta tiež nie je pravdivá.
"Pozor: nemôžete predávať menej alebo viac argumentov ako je napísané v pri vytváraní metódy."
Môžeš voliť ľubovoľný počet parametrov, pokiaľ na to máš napísanú metódu... Viac tu http://csharp.net-tutorials.com/classes/method-overloading/

Keď už "učíš" programovací jazyk, uč ho správne... Keď sa to fláka od začiatku, ďalej to lepšie nebude...
0 0 Marek Zelinka 7.7.2012 09:22:25
Len tak ďalej, už sa teším na nasledujúci diel. :D
0 0 Martin Maričák 6.7.2012 11:23:34
Nejako rýchlo ti to ide s tými dielmi. :D
Zajtra.sk > Programovanie > Seriály > C# - 3. diel


Kritika

Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!

Reklama

Seriály zo Zajtra.sk

Reklama