Dobří programátoři nepíší své programy jako jednu dlouhou posloupnost příkazů, ale rozdělují je do menších úseků - metod.
Metoda je pojmenovaná část programu, jejíž definice začíná hlavičkou s názvem metody a pokračuje tělem obsahujícím předpis, jak činnost svěřenou metodě vykonat. Tělo metody tvoří příkazy v bloku.
Definice metody končí hlavičkou další metody nebo koncem souboru.
Vytváření metod
Novou metodu vytvoříte tak, že stiskem tlačítka Metody na panelu nástrojů otevřete stejnojmenné okno a v něm stisknete tlačítko s tužkou a listem papíru umístěné v levém dolním rohu okna. B4 pak na konec programu vloží novou hlavičku metody nazvané MetodaN, kde N je pořadové číslo vytvářené metody. Název metody je možné samozřejmě ihned změnit, měl by být ale nějaký krátký a výstižný. Název by měl ve zkratce obsahovat, co ta metoda vykoná (např. PostavDomeček, OzdobStromeček, UdělejKotrmelec).
Název metody můžete kdykoliv změnit prostým poklepáním na hlavičku, či kliknutím pravým tlačítkem a vybráním Upravit (klávesová zkratka F2).
Pomohla Vám nápověda?
Volání metod
Potřebujete-li v programu vykonat činnost definovanou v metodě, musíte metodu zavolat. Toho dosáhnete tak, že otevřete okno Metody a v něm klepnete na ikonku s listem papíru vlevo od názvu metody, kterou chcete zavolat. Okno se pak zavře a vy umístíte příkaz k volání metody do požadované pozice. Kdykoliv pak program na tento příkaz narazí, provede posloupnost příkazů definovaných v těle dané metody.
Toto okno také můžete využít pro rychlý přesun na deklaraci metody. Stačí kliknout na název metody, nebo do šedého prostoru vedle názvu metody.
Pokud kliknete pravým tlačítkem na metodu v okně metod, zobrazí se místní nabídka:
  • Vytvořit volání metody  vytvoří volání metody, na kterou jste kliknuli.
  • Upravit  zobrazí dialog pro úpravu názvu a návratové hodnoty metody a přejde na její deklaraci.
  • Přejít k metodě  přesune pracovní plochu k metodě.
  • Vytvořit novou metodu  na konci programu vytvoří deklaraci nové metody.
  • Odstranit  odstraní z programu metodu, na kterou jste kliknuli.
Okno výběru metod obsahuje také vpravo nahoře zaškrtávací tlačítko Řadit abecedně. Pokud je zvoleno, jsou metody v okně uspořádány podle abecedy, jinak je vidíte v pořadí, v jakém jsou deklarovány v programu.
Pokud nechcete vybrat žádnou metodu, stiskněte křížek vpravo nahoře, nebo tlačítko Storno vpravo dole a okno se zavře.
Pomohla Vám nápověda?
Používání metod
Na obrázku vidíte použití metod v praxi. První řádek programu zavolá metodu, která způsobí, že Baltík provede řadu pohybů. Potom se Baltík vznese a zase provede stejnou řadu pohybů. Na dalších řádcích je potom deklarace metody. Dole je zobrazen celkový počet metod.
Tento zápis je ekvivalentní s následujícím programem:
Příklad (For mode 3D)
Baltík se stane viditelným, popojde, otočí se doleva, popojde, vyletí nahoru, otočí se doprava, popojde, sletí dolů, popojde, otočí se doleva, popojde, vyletí nahoru a celé se to zopakuje až na první a poslední příkaz.
Metody se používají pro zvýšení přehlednosti a spravovatelnosti programu. Dobrý programátor nikdy nepíše stejný, nebo velmi podobný kód dvakrát. Místo toho definuje metodu, v jejímž těle definuje potřebnou posloupnost příkazů, a tu pak na všech potřebných místech zavolá. Bude-li v budoucnu potřebovat kód změnit, nemusí probíhat všechna místa v programu, ale stačí mu změnit pouze tělo metody.
Řiďte se zkušeností špičkových programátorů, kteří vědí, že metody mají být co nejkratší. Metoda má provádět jenom jednu jednoduchou věc. Je-li metoda delší, zřejmě se v ní snažíte udělat několik věcí najednou. To vám většinou při dalších úpravách znepříjemní život.
Pomohla Vám nápověda?
Následující řádky jsou určeny pokročilým programátorům, kteří již zvládají proměnné.
Metody s návratovými hodnotami
Metody nemusí sloužit pouze k provedení určitých příkazů, můžete je využít k různým matematickým operacím. Potom je třeba nastavit návratovou hodnotu. Tato návratová hodnota je určena v metodě a potom vrácena na místo, odkud byla metoda zavolána. Volání metody s návratovou hodnotou se tedy podobá použití proměnné, ale místo toho, aby se program podíval, co je v proměnné, tak provede příkazy v metodě a potom použije výsledek, který metoda vrátí.
Návratová hodnota se vybírá při vytváření, či úpravě metody podobně jako datový typ proměnné. Stačí zvolit barevný čtvereček, jež odpovídá datovému typu, ve kterém má metoda vracet nějakou hodnotu. V políčku typ je napsáno jméno datového typu a při najetí na čtvereček se zobrazí, co daný datový typ může obsahovat. Pokud zvolíte černý čtvereček, typ si můžete napsat sami do políčka, nebo si ho vybrat z menu, které zobrazíte pomocí šipky.
Navíc oproti proměnným je tam typ void, který určuje žádnou návratovou hodnotu a je nastaven automaticky (pokud tedy nezvolíte žádnou návratovou hodnotu, bude použit typ void).
Samotná návratová hodnota se v metodě určuje pomocí příkazu return. Nejprve se dává ikonka příkazu return a potom hodnota, kterou má metoda vrátit. Příkazem return metoda také skončí, i když se v ní neprovedly všechny příkazy. Pro použití příkazu return vizte příklad, ve kterém je pomocí metody vypsáno na obrazovku náhodné číslo:
Příklad (For modes 2D, 3D)
Zavolá metodu, která vrátí náhodné číslo. Toto náhodné číslo se pak vypíše na obrazovku.
Příkaz return lze využít i v metodách bez návratové hodnoty, kde slouží jenom k ukončení metody.
Volání metody s návratovou hodnotou můžete dát do matematických výpočtů, hodnotu, kterou metoda vrátí, přiřadit do proměnné, předat ji jako parametr další metodě apod. Pokud program při vykonávání příkazů narazí na volání metody s návratovou hodnotou, provede příkazy v ní a potom volání metody nahradí hodnotou, kterou metoda vrátí.
Pomohla Vám nápověda?
Parametry
Metodě můžete při volání předat tzv. parametry, což jsou v podstatě lokální proměnné dané metody. Takto můžete metodě sdělit různé věci, například nad jakými čísly se má provést daná matematická operace, nebo jaký Baltík má provést příkazy v metodě (dělá se to pomocí zástupného Baltíka).
Všechny parametry musejí být uvedeny při deklaraci metody. Vkládají se do závorky za jménem metody vložením ikonky pro výběr či vytvoření proměnné. Pokud je parametrů víc, oddělte je čárkou.
Do volání metody se parametry dávají také do kulatých závorek. Můžete tam zadat přímo hodnotu, jinou proměnnou stejného datového typu jako parametr, či další metodu s návratovou hodnotou (opět musí sedět datové typy). Aby měly parametry správné datové typy, můžete při volání využít přetypování.
Jednotlivé parametry se ve volání také oddělují čárkou. Ve volání musí být stejný počet a stejné pořadí parametrů jako v deklaraci, to znamená, že když máte v deklaraci dva parametry, musejí být i ve volání dvě hodnoty, nebo proměnné.
Pomohla Vám nápověda?
Přetěžování metod
V C# nemohou být dvě metody, které mají stejný název a stejné parametry. Můžete ale vytvořit dvě metody, které budou mít stejný název, ale jiné parametry (lze změnit datový typ parametrů, nebo jejich počet). Tomu, že více metod má stejný název, ale jiné parametry, se říká přetěžování metod.
Přetěžování může najít využití třeba v metodě Sečti, která bude vracet součet parametrů, jejichž počet může být různý (např. od 2 do 5). Abyste nemuseli definovat metody Sečti2, Sečti3, Sečti4... stačí definovat jenom metodu Sečti s různým počet parametrů.
Deklarace přetěžovaných metod vypadá úplně stejně jako deklarace kterýchkoliv jiných metod. Příklad deklarace přetížené metody Sečti:
Z obrázku je vidět, jak se zapisují komentáře k metodě (za její deklaraci) a k parametrům (za parametr, který chceme okomentovat). Tyto komentáře pomáhají jinému programátorovi, nebo i Vám porozumět metodě, jsou také zobrazeny při výběru přetížení metody.
V okně výběru metod se zobrazuje přetěžovaná metoda pouze jednou, ale je vedle ní napsán počet přetížení. Při zvolení přesunu k deklaraci metody, se program přesune k první přetěžované metodě, proto je dobré dávat jejich deklarace za sebe.
Rozdíl oproti nepřetěžované metodě je také při vkládání jejího volání. Pokud poklepete myší na volání metody, nebo z místní nabídky, jež se zobrazí po stisku pravého tlačítka, vyberete položku Vybrat jiné přetížení (klávesová zkratka F2), zobrazí se nabídka, jakou přetěžovanou metodu chcete použít.
Větší část okna pro výběr přetížení zabírá popis zvolené metody a jejích parametrů (jestliže je u metody a u parametrů nějaký komentář). Vlevo jsou šipky, kterými přepínáte jednotlivá přetížení. Pomocí zelených zobáčků vložíte do volání metody parametry tak, že se vždy použije nějaká hodnota stejného datového typu jako parametr (u číselných typů je to nula). Pokud stisknete zobáček, jež níže, přidají se k parametrům i jejich popisky z deklarace (jestliže nějaké jsou).
Křížkem dole zavřete dialogové okno bez toho, aby se v programu něco změnilo. K ikonce volání metody si můžete pomocí tlačítka s otazníkem zobrazit nápovědu k ikonce volání metody, vyhledat její použití v příkladech, nebo ji zobrazit v Object Browseru.
Pomohla Vám nápověda?
Parametry ref a out
Pokud v metodě měníte hodnotu parametru, nezmění se původní proměnná, kterou jste uvedli ve volání metody (např. když do volání metody uvedu jako parametr proměnnou s hodnotou "Pepa", v metodě změníte hodnotu parametru na "Franta", tak se mi původní proměnná nezmění, její hodnota zůstane pořád "Pepa").
Aby bylo možné měnit i původní proměnnou, obsahuje C# dvě klíčová slova: ref a out (pro obě existují ikonky). Tato klíčová slova se musí uvést před parametr jak v deklaraci metody, tak ve volání.
Obě klíčová slova mají stejnou funkci, liší se jen v tom, že při použití ikonky ref musí mít proměnná použitá jako parametr nějakou hodnotu (musí být inicializována), u ikonky out být nemusí.
Příklady na použití parametrů ref a out:
Příklad (For modes 2D, 3D, Console)
Vytvoří řetězcovou proměnnou s, uloží do ní text "nezměněno" a vypíše jí na obrazovku. Pak zavolá metodu, která svému parametru p přiřadí text "změna". Změna parametru se promítne i do proměnné s díky tomu, že před parametrem je klíčové slovo ref.

Příklad (For modes 2D, 3D, Console)
Vytvoří proměnnou s a zatím do ní nic nepřidá. Pak zavolá metodu, která svému parametru p přiřadí text "změna". Změna parametru se promítne i do proměnné s díky tomu, že před parametrem je klíčové slovo out. V tomto příkladu nemůže být použita ikonka klíčového slova ref, protože v proměnné s není před zavoláním metody nic.
Pomohla Vám nápověda?


Shledali jste tuto informaci pro Vás užitečnou?
Máte nějaký dotaz nebo připomínku k tomuto tématu? Napište nám.
©1978-2010 SGP Systems

Nadřazená stránka | Předchozí stránka | Další stránka