This article has been localized into Czech by the community.
Metody (funkce)
Zatímco vlastnosti a pole lze považovat za pasivní části třídy, metody jsou aktivní. Vykonají jednu nebo několik akcí a volitelně vrátí výsledek. V jiných programovacích jazycích se jim někdy říká funkce, ale v C#, kde patří do třídy, se jim říká metody. Metody jsou velmi užitečné, protože vám umožňují zapouzdřit kus funkcionality do metody, kterou pak můžete znovu volat z několika míst.
Metoda je definována takto:
<visibility> <return type> <name>(<parameters>)
{
<method code>
}
Zde je velmi jednoduchý příklad:
public int AddNumbers(int number1, int number2)
{
return number1 + number2;
}
Tato velmi základní metoda sečte dvě čísla a vrátí výsledek. Pojďme se podívat na jednotlivé části:
- public je viditelnost - modifikátor přístupu (více o tom později v tomto tutoriálu)
- int je návratový typ. Pokud nechcete, aby vaše metoda něco vracela, použijte místo toho klíčové slovo void
- AddNumbers je jméno metody
- (int number1, int number2) - to jsou parametry (více o nich později). Parametry jsou volitelné, takže máte možnost nechat prostor mezi závorkami prázdný. Závorky samotné však volitelné nejsou
- Uvnitř metody (mezi složenými závorkami) najdete skutečný kód metody. Může obsahovat jeden nebo mnoho řádků kódu.
Pro volání metody jednoduše napište její název následovaný sadou závorek. Uvnitř závorek byste měli napsat parametry (pokud metoda nějaké přijímá), takto:
AddNumbers(3, 39);
Jelikož metody jsou definovány na třídách, můžete chtít volat metodu na jiné třídě než na té, ve které se momentálně nacházíte. V takovém případě byste měli před volání metody uvést název objektu nebo v případě statické metody (více o nich později) název třídy. Zde je příklad, kde voláme metodu AddNumbers(), která byla umístěna do jiné třídy nazvané MathHelper:
public void DoMath()
{
MathHelper mathHelper = new MathHelper();
int result = mathHelper.AddNumbers(4, 38);
Console.WriteLine(result);
}
Návratové typy metod
Pojďme si více povědět o návratových typech. V předchozích příkladech jsme definovali metodu s celočíselným návratovým typem, ale můžete vracet jakýkoli jiný typ dat C#. Ve skutečnosti můžete dokonce deklarovat metodu, která nic nevrací, jak jsme viděli u naší metody DoMath() výše. Všimněte si, že jsem int nahradil klíčovým slovem void, což znamená, že tato metoda nemá vracet nic. V některých programovacích jazycích se funkce bez návratového typu označují jako procedury ale v C# se vždy nazývají metody.
Měli byste si být vědomi, že když deklarujete návratový typ pro metodu, MUSÍTE něco vrátit - v opačném případě kompilátor okamžitě vyvolá chybu:
public int AddNumbers(int number1, int number2)
{
Console.WriteLine(number1 + number2);
}
Compiler error: AddNumbers(int, int)': not all code paths return a value
To znamená, že pokud má vaše metoda deklarovaný návratový typ, potřebujete uvnitř metody jedno (nebo několik) klíčových slov return. Možná budete potřebovat více než jedno v situacích, kdy máte několik možných cest kódu, jako v tomto případě:
public int AddLargeNumbers(int number1, int number2)
{
if((number1 > 1000) && (number2 > 1000))
{
return number1 + number2;
}
return 0;
}
V tomto případě potřebujeme také druhý příkaz return - pokud je vynechán, kompilátor si stěžuje, protože náš podmíněný příkaz by mohl zabránit dosažení prvního příkazu return.
Shrnutí
Metody vám umožňují zapouzdřit a znovu použít funkcionalitu z několika míst. Dodáním různých parametrů metodě můžete získat různé výsledky. V předchozích příkladech jsme použili některé parametry, ale v dalším článku se do tématu parametrů metod ponoříme mnohem hlouběji.