6. Návrat více výstupů

Pravděpodobně nastane situace, kdy budeme potřebovat navrátit z metody více jak jeden výsledek (zatím jsme navraceli jeden výsledek pomocí příkazu return). K tomu můžeme využít následující syntaxi: 

(seznamDatovýchTypůVýstupů) identifikátorMetody(seznamFormálníchParametrů)
{
      //Tělo metody - zde jsou umístěny příkazy a přiřazení hodnot výstupům
      return (seznamVýstupů);
}

kde:

  • seznamDatovýchTypůVýstupů - představuje seznam jednotlivých datových typů jednotlivých výstupů (návratů) z metody uvedených v kulaté závorce před názvem metody. Jednotlivé datové typy návratů jsou odděleny čárkou
  • identifikátorMetody - princip popsán v předchozích kapitolách
  • seznamFormálníchParametrů - princip popsán v předchozích kapitolách
  • return - princip popsán v předchozích kapitolách
  • seznamVýstupů - představuje seznam jednotlivých výstupů (návratů) z metody uvedené v kulaté závorce za klíčovým slovem return
Ilustrativní příklad CelociselneDeleni

Program SectiHodnotyBezParametru
  • Popis: Metoda navracející více výstupů 
  • Zadání: Vymyslete, jak byste v C# naprogramovali metodu CelociselneDeleni jako konzolovou aplikaci. Tato metoda přijímá dva celočíselné parametry x a y. V této metodě deklarujte dvě celočíselné proměnné celociselneDeleni, do které uložíte hodnotu celočíselného dělení hodnot obou parametrů a zbytekCelociselnehoDeleni do níž uložíte zbytek po celočíselném dělení hodnot parametrů. Metodu CelociselneDeleni zavolejte v hlavní metodě Main. V metodě Main vypište výsledky aritmetických operací
  • Řešení: Bude postupně probráno v následujícím textu

V následujícím kódu ukážeme, jak deklarovat metodu se dvěma vstupními parametry a dvěma výstupy. První výstup představuje hodnotu celočíselného dělení dvou vstupních parametrů (argumentů metody) a druhý výstup představuje zbytek po celočíselném dělení těchto dvou parametrů – viz Kód 1.

/*Deklarace statické metody se dvěma celočíselnými výstupy 
  a se dvěma vstupními parametry*/
static (int, int) CelociselneDeleni(int x, int y)
{
    int celociselneDeleni, zbytekCelociselnehoDeleni;
    celociselneDeleni = x / y;
    zbytekCelociselnehoDeleni = x % y;
    return (celociselneDeleni, zbytekCelociselnehoDeleni);
}

Kód 1: Příklad metody se dvěma výstupy a dvěma vstupy

Metoda CelociselneDeleni, které předáme jako první parametr hodnotu 7 a jako druhý parametr číslo 5, by se volala v metodě Main následujícím způsobem – viz Kód 2. 

static void Main(string[] args)
{ 
    //Deklarace lokálních celočíselných proměnných
    int celociselneDeleni, zbytekCelociselnehoDeleni;
    /*Zavolání metody pro celočíselné dělení se 2 vstupními parametry a dvěmi celočíselnými výstupy*/
    (celociselneDeleni, zbytekCelociselnehoDeleni) = CelociselneDeleni(7, 5);
    Console.WriteLine("Celočíselné dělení: {0}, zbytek po celočíselném dělení: {1}", celociselneDeleni, zbytekCelociselnehoDeleni);
    //Čekání na stisk klávesy -> ukončení programu
    Console.ReadKey();
}

Kód 2: Příklad volání metody CelociselneDeleni se dvěma výstupy a dvěma vstupy v hlavní metodě Main

Ve výpisu v konzole vidíme, že do první proměnné celociselneDeleni, představující výsledek celočíselného dělení, metoda uloží hodnotu 1. Do druhé proměnné zbytekCelociselnehoDeleni představující zbytek po celočíselném dělení bude uložena hodnota 2.

Celočíselné dělení: 1, zbytek po celočíselném dělení: 2

Výstup programu - Kód 2: Ukázka výpisu hodnot výstupních parametrů