Cvičení – použití parametrů v metodách

Dokončeno

Při vytváření metod budete často chtít zadat některé informace, které má metoda použít. Informace spotřebované metodou se nazývají parametr. K provedení úkolu můžete zadat libovolný počet parametrů, nebo vůbec žádný.

Termíny parametr a argument se často používají zaměnitelně. Parametr však odkazuje na proměnnou v podpisu metody. Argument je hodnota předaná při zavolání metody.

Přidání parametrů do metod

Parametry v metodě fungují podobně jako proměnné. Parametr je definován zadáním datového typu následovaného názvem parametru. Parametry jsou deklarovány v podpisu metody a hodnoty parametrů jsou poskytovány volající metodou místo inicializace uvnitř samotné metody. Vezměte v úvahu následující kód:

	CountTo(5);

	void CountTo(int max) 
	{
		for (int i = 0; i < max; i++)
		{
			Console.Write($"{i}, ");
		}
	}

V tomto příkladu metoda CountTo přijímá celočíselná parametr s názvem max. Na parametr se odkazuje ve for smyčce metody. Při CountTo zavolání se celé číslo 5 zadává jako argument.

V tomto cvičení se naučíte vytvářet a používat vlastní parametry metody.

Příprava programovacího prostředí

Tento modul obsahuje praktické aktivity, které vás provedou procesem sestavování a spouštění ukázkového kódu. Doporučujeme, abyste tyto aktivity dokončili pomocí editoru Visual Studio Code jako vývojového prostředí. Používání editoru Visual Studio Code pro tyto aktivity vám pomůže stát se pohodlnějším psaním a spouštěním kódu ve vývojářském prostředí, které používají profesionálové po celém světě.

  1. Otevřete Visual Studio Code.

    K otevření editoru Visual Studio Code můžete použít nabídku Start systému Windows (nebo odpovídající prostředek pro jiný operační systém).

  2. V nabídce Soubor editoru Visual Studio Code vyberte Otevřít složku.

  3. V dialogovém okně Otevřít složku přejděte do složky Windows Desktop.

    Pokud máte jiné umístění složky, kde uchováváte projekty kódu, můžete místo toho použít toto umístění složky. Pro účely tohoto školení je důležité mít umístění, které je snadné najít a zapamatovat.

  4. V dialogovém okně Otevřít složku vyberte Vybrat složku.

    Pokud se zobrazí dialogové okno zabezpečení s dotazem, jestli autorům důvěřujete, vyberte Ano.

  5. V nabídce Terminálu editoru Visual Studio Code vyberte Nový terminál.

    Všimněte si, že příkazový řádek na panelu Terminálu zobrazuje cestu ke složce pro aktuální složku. Například:

    C:\Users\someuser\Desktop>
    

    Poznámka:

    Pokud pracujete na vlastním počítači, ne v sandboxu nebo hostovaném prostředí a dokončili jste další moduly Microsoft Learn v této řadě C#, možná jste už vytvořili složku projektu pro ukázky kódu. V takovém případě můžete přeskočit další krok, který se používá k vytvoření konzolové aplikace ve složce TestProject.

  6. Na příkazovém řádku terminálu vytvořte novou konzolovou aplikaci v zadané složce, zadejte dotnet new console -o ./CsharpProjects/TestProject a stiskněte Enter.

    Tento příkaz rozhraní příkazového řádku .NET používá šablonu programu .NET k vytvoření nového projektu konzolové aplikace jazyka C# v zadaném umístění složky. Příkaz pro vás vytvoří složky CsharpProjects a TestProject a jako název .csproj souboru použije TestProject.

  7. Na panelu PRŮZKUMNÍK rozbalte složku CsharpProjects .

    Měli byste vidět složku TestProject a dva soubory, programový soubor jazyka C# s názvem Program.cs a soubor projektu C# s názvem TestProject.csproj.

  8. Na panelu PRŮZKUMNÍK vyberte Program.cs, abyste zobrazili soubor kódu na panelu Editor.

  9. Odstraňte existující řádky kódu.

    Tento projekt konzoly C# použijete k vytváření, sestavování a spouštění ukázek kódu během tohoto modulu.

  10. Zavřete panel Terminálu.

Vytvoření metody s parametry

V této úloze vytvoříte metodu, která upraví naplánované časy na jiné časové pásmo GMT. Metoda by měla přijmout seznam časů, aktuálního časového pásma a nového časového pásma. Pojďme začít!

  1. Do editoru visual studio Code zadejte následující kód:

    int[] schedule = {800, 1200, 1600, 2000};
    
  2. Pokud chcete vytvořit metodu s parametry, zadejte na nový prázdný řádek následující kód:

    void DisplayAdjustedTimes(int[] times, int currentGMT, int newGMT) 
    {
    
    }
    

    Všimněte si, že parametry jsou deklarovány podobně jako deklarování proměnných pomocí datového typu následovaného názvem proměnné. Můžete použít parametry libovolného datového typu, například string, , bool, intpole a další! Více parametrů v metodě je vždy odděleno čárkami.

  3. Do metody zadejte následující kód DisplayAdjustedTimes :

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    

    Všimněte si, jak nemusíte deklarovat proměnné newGMT a currentGMT protože už jsou deklarovány v podpisu metody. Proměnné také neicializujete, protože metoda předpokládá, že volající zadá tyto argumenty s přiřazenými hodnotami.

    V tomto kroku vytvoříte int diff , abyste uložili časový rozdíl, a pak zkontrolujete, že zadané hodnoty GMT jsou mezi -12 a 12. Použití Math.Abs vám dává absolutní hodnotu čísla, takže hodnoty GMT jsou neplatné, pokud jsou větší než 12.

  4. Pokud chcete vypočítat časový rozdíl, aktualizujte metodu DisplayAdjustedTimes následujícím způsobem:

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    else if (newGMT <= 0 && currentGMT <= 0 || newGMT >= 0 && currentGMT >= 0) 
    {
        diff = 100 * (Math.Abs(newGMT) - Math.Abs(currentGMT));
    } 
    else 
    {
        diff = 100 * (Math.Abs(newGMT) + Math.Abs(currentGMT));
    }
    

    V tomto kódu zkontrolujete, jestli potřebujete přičíst nebo odečíst absolutní hodnoty časových pásem GMT, abyste získali rozdíl v hodinách. Pokud hodnoty GMT sdílejí stejné znaménko (kladné i obě záporné), je rozdíl hodin roven rozdílu mezi dvěma čísly. Pokud mají hodnoty GMT opačné znaménka, je rozdíl roven součtu dvou čísel. Vzhledem k tomu, že hodiny jsou reprezentovány ve stovkách, vynásobíte výsledek číslem 100.

  5. Pokud chcete zobrazit výsledky, zadejte na konci DisplayAdjustedTimes metody následující kód:

    for (int i = 0; i < times.Length; i++) 
    {
        int newTime = (times[i] + diff) % 2400;
        Console.WriteLine($"{times[i]} -> {newTime}");
    }
    
  6. Chcete-li volat svou metodu, zadejte následující kód po deklaraci proměnné int[] schedule.

    DisplayAdjustedTimes(schedule, 6, -6);
    

    Všimněte si, že proměnné i literály lze do metody zadat jako argumenty. Při použití vstupních parametrů není metoda omezena na použití hodnot globálních proměnných.

Kontrola práce

V této úloze spustíte aplikaci z integrovaného terminálu a ověříte, že váš kód funguje správně. Pojďme začít.

  1. Uložte práci pomocí ctrl + S nebo pomocí nabídky Soubor editoru Visual Studio Code.

  2. V případě potřeby otevřete integrovaný panel terminálu editoru Visual Studio Code.

    Na panelu PRŮZKUMNÍK otevřete terminál v umístění složky TestProject, klikněte pravým tlačítkem myši na TestProject a pak vyberte Otevřít v integrovaném terminálu.

  3. Na příkazovém řádku terminálu zadejte příkaz dotnet run.

  4. Ověřte, že váš kód vytvoří následující výstup:

    800 -> 2000
    1200 -> 0
    1600 -> 400
    2000 -> 800
    

    Pokud váš kód zobrazuje různé výsledky, budete muset zkontrolovat kód, abyste našli chybu a aktualizovali ji. Spusťte kód znovu, abyste zjistili, jestli jste problém vyřešili. Pokračujte v aktualizaci a spouštění kódu, dokud váš kód nevygeneruje očekávané výsledky.

Rekapitulace

Tady je, co jste se zatím naučili o parametrech:

  • Informace lze předat metodám ve formě parametrů.
  • Parametry jsou deklarovány v podpisu metody.
  • Více parametrů je odděleno čárkami.
  • Metody mohou přijímat proměnné nebo literální argumenty.