This article has been localized into Czech by the community.
Funkce
Funkce umožňuje zapouzdřit část kódu a volat ji z jiných částí kódu. Brzy se dostanete do situace, kdy musíte zopakovat kód na více místech, a to je místo, kde funkce přicházejí. V C # jsou v zásadě deklarováni takto:
<visibility> <return type> <name>(<parameters>)
{
<function code>
}
Chcete-li volat funkci, jednoduše zadejte její název s otevřenou závorkou, pak parametry, pokud existují, a pak uzavírací závorku takto:
DoStuff();
Zde je příklad použití naší funkce DoStuff ():
public void DoStuff()
{
Console.WriteLine("I'm doing something...");
}
První částí je "public" neboli "veřejné", je to viditelnost a je nepovinná. Pokud nedefinujete žádnou, bude funkce soukromá. Více o tom později. Následuje typ, který se má vrátit. Může to být jakýkoli platný typ v C #, nebo jak jsme to udělali tady, "void". Void znamená, že tato funkce vrací absolutně nic. Také tato funkce nemá žádné parametry, jak vidíte z prázdné sady závorek, takže je to vlastně jen trochu nudné. Změníme to takto:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
return result;
}
Změnili jsme téměř vše. Funkce nyní vrací celé číslo, vezme dva parametry (obě celá čísla) a namísto výstupu provede výpočet a vrátí výsledek. To znamená, že můžeme přidávat dvě čísla z různých míst v našem kódu, jednoduše tím, že voláme tuto funkci namísto toho, abychom museli vždy zapisovat kód výpočtu. Zatímco v tomto malém příkladu nezachráníme tolik času a úsilí. Věřte, že se naučíte milovat funkce, tím více budete používat C#. Tato funkce se nazývá takto:
int result = AddNumbers(10, 5);
Console.WriteLine(result);
Jak již bylo zmíněno, tato funkce něco vrací, protože jsme C# řekli, že právě to má dělat. Když deklarujeme cokoliv jiného než void jako typ výstupu, nutíme se něco vracet. Můžete zkusit odstranit return z příkladu nahoře a uvidíte jak si kompilátor postěžuje:
'AddNumbers(int, int)': ne všechny cesty kódu vrací hodnotu
Kompilátor nás upozorňuje, že máme funkci která nic nevrací, přestože jsme slíbili, že něco vracet bude. A kompilátor je docela chytrý! Místo odstranění řádku, zkuste něco takového:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
}
Uvidíte stejnou chybu, ale proč? Protože není garantováno, že podmínka if bude pravdivá a funkce něco vrátí. Můžete to vyřešit tím, že přidáte druhý defaultní return na konec:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
return 0;
}
Tím jsme opravili problém a zároveň ukázali, že v jedné funkci může být více return. Jakmile funkce dojde k return, funkce je ukončena a žádný další kód v ní není proveden. V tomto případě to znamená, že dokud výsledek je vyšší než 10, řádek "return 0" není nikdy proveden.
This article has been deprecated!
This article has been re-organized and updated to better match the rest of the tutorial.
We suggest that you read this article instead: Methods (functions)