TOC

This article is currently in the process of being translated into Czech (~97% done).

Základy:

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)': not all code paths return a value

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 fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!