Ćwiczenie — używanie parametrów w metodach

Zakończone

Podczas tworzenia metod często warto podać pewne informacje dotyczące metody do użycia. Informacje używane przez metodę są nazywane parametrem. Możesz podać tyle parametrów, ile jest potrzebnych, aby wykonać jego zadanie lub w ogóle nie.

Terminy "parametr" i "argument" są często używane zamiennie. Jednak parametr odnosi się do zmiennej w podpisie metody. "Argument" to wartość, która jest przekazywana przy wywołaniu metody.

Dodawanie parametrów do metod

Parametry w metodzie działają podobnie do zmiennych. Parametr jest definiowany przez określenie typu danych, po którym następuje nazwa parametru. Parametry są deklarowane w sygnaturze metody, a wartości parametrów są dostarczane przez obiekt wywołujący metodę zamiast być inicjowanymi wewnątrz samej metody. Rozważ następujący kod:

	CountTo(5);

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

W tym przykładzie metoda CountTo akceptuje parametr liczby całkowitej o nazwie max. Parametr jest przywoływany w for pętli metody. Gdy CountTo jest wywoływana, liczba całkowita 5 jest dostarczana jako argument.

W tym ćwiczeniu dowiesz się, jak tworzyć i używać własnych parametrów metody.

Przygotowywanie środowiska kodowania

Ten moduł zawiera praktyczne działania, które prowadzą Cię przez proces tworzenia i uruchamiania kodu demonstracyjnego. Zachęcamy do wykonania tych działań przy użyciu programu Visual Studio Code jako środowiska programistycznego. Korzystanie z programu Visual Studio Code dla tych działań pomoże Ci lepiej pisać i uruchamiać kod w środowisku deweloperów używanym przez specjalistów na całym świecie.

  1. Otwórz program Visual Studio Code.

    Aby otworzyć program Visual Studio Code, możesz użyć menu Start systemu Windows (lub równoważnego zasobu dla innego systemu operacyjnego).

  2. W menu Plik programu Visual Studio Code wybierz pozycję Otwórz folder.

  3. W oknie dialogowym Otwórz folder przejdź do folderu Pulpit systemu Windows.

    Jeśli masz inną lokalizację folderu, w której są zachowywane projekty kodu, możesz zamiast tego użyć tej lokalizacji folderu. Na potrzeby tego szkolenia ważne jest, aby mieć lokalizację, która jest łatwa do zlokalizowania i zapamiętania.

  4. W oknie dialogowym Otwieranie folderu wybierz pozycję Wybierz folder.

    Jeśli zostanie wyświetlone okno dialogowe zabezpieczeń z pytaniem, czy ufasz autorom, wybierz pozycję Tak.

  5. W menu Terminal programu Visual Studio Code wybierz pozycję Nowy terminal.

    Zwróć uwagę, że wiersz polecenia w panelu Terminal wyświetla ścieżkę folderu dla bieżącego folderu. Przykład:

    C:\Users\someuser\Desktop>
    

    Uwaga / Notatka

    Jeśli pracujesz na własnym komputerze, a nie w piaskownicy lub w środowisku hostowanym, a w tej serii języka C# zostały ukończone inne moduły usługi Microsoft Learn, być może utworzono już folder projektu dla przykładów kodu. Jeśli tak jest, możesz pominąć następny krok, który służy do tworzenia aplikacji konsolowej w folderze TestProject.

  6. W wierszu polecenia terminalu, aby utworzyć nową aplikację konsolową w określonym folderze, wpisz dotnet new console -o ./CsharpProjects/TestProjects , a następnie naciśnij Enter.

    To polecenie interfejsu wiersza polecenia platformy .NET używa szablonu programu .NET do utworzenia nowego projektu aplikacji konsolowej języka C# w określonej lokalizacji folderu. Polecenie tworzy foldery CsharpProjects i TestProject oraz używa nazwy TestProject jako nazwy pliku .csproj.

  7. W panelu EKSPLORATOR rozwiń folder CsharpProjects .

    Powinien zostać wyświetlony folder TestProject i dwa pliki, plik programu C# o nazwie Program.cs i plik projektu C# o nazwie TestProject.csproj.

  8. W panelu EKSPLORATOR, aby wyświetlić plik kodu w panelu Edytor, wybierz pozycję Program.cs.

  9. Usuń istniejące wiersze kodu.

    Ten projekt konsoli języka C# będzie używany do tworzenia, kompilowania i uruchamiania przykładów kodu w tym module.

  10. Zamknij panel Terminal.

Tworzenie metody z parametrami

W tym zadaniu utworzysz metodę, która dostosowuje zaplanowane czasy do innej strefy czasowej GMT. Metoda powinna akceptować listę czasów, bieżącą strefę czasową i nową strefę czasową. Zaczynamy!

  1. Wprowadź następujący kod w edytorze programu Visual Studio Code:

    int[] schedule = {800, 1200, 1600, 2000};
    
  2. Aby utworzyć metodę z parametrami, wprowadź następujący kod w nowym pustym wierszu:

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

    Zwróć uwagę, że parametry są deklarowane podobnie do sposobu deklarowania zmiennych przy użyciu typu danych, po którym następuje nazwa zmiennej. Możesz użyć parametrów dowolnego typu danych, takich jak string, , bool, int, tablice i nie tylko! Wiele parametrów w metodzie jest zawsze rozdzielonych przecinkami.

  3. Wprowadź następujący kod w metodzie DisplayAdjustedTimes :

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

    Zwróć uwagę, że nie musisz deklarować zmiennych newGMT i currentGMT ponieważ są one już zadeklarowane w podpisie metody. Nie inicjujesz również zmiennych, ponieważ metoda zakłada, że obiekt wywołujący dostarcza te argumenty z przypisanymi wartościami.

    W tym kroku utworzysz int diff metodę przechowywania różnicy czasu, a następnie sprawdzisz, czy podane wartości GMT znajdują się między -12 a 12. Użycie Math.Abs daje wartość bezwzględną liczby, więc wartości GMT są nieprawidłowe, jeśli są większe niż 12.

  4. Aby obliczyć różnicę czasu, zaktualizuj metodę DisplayAdjustedTimes w następujący sposób:

    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));
    }
    

    W tym kodzie sprawdzisz, czy chcesz dodać lub odjąć bezwzględne wartości stref czasowych GMT, aby uzyskać różnicę w godzinach. Jeśli wartości GMT mają ten sam znak (zarówno dodatni, jak i oba wartości ujemne), różnica godzin jest równa różnicy między dwiema liczbami. Jeśli wartości GMT mają przeciwległe znaki, różnica jest równa sumie dwóch liczb. Ponieważ godziny są reprezentowane w setkach, pomnożysz wynik przez 100.

  5. Aby wyświetlić wyniki, wprowadź następujący kod na końcu DisplayAdjustedTimes metody:

    for (int i = 0; i < times.Length; i++) 
    {
        int newTime = (times[i] + diff) % 2400;
        Console.WriteLine($"{times[i]} -> {newTime}");
    }
    
  6. Aby wywołać metodę, wprowadź następujący kod po deklaracji zmiennej int[] schedule :

    DisplayAdjustedTimes(schedule, 6, -6);
    

    Zwróć uwagę, że zarówno zmienne, jak i literały można podać jako argumenty metody. Przy użyciu parametrów wejściowych metoda nie jest ograniczona do używania wartości zmiennych globalnych.

Sprawdź swoją pracę

W tym zadaniu uruchomisz aplikację ze zintegrowanego terminalu i sprawdzisz, czy kod działa poprawnie. Zacznijmy.

  1. Zapisz swoją pracę przy użyciu Ctrl + S lub za pomocą menu Plik programu Visual Studio Code.

  2. W razie potrzeby otwórz panel Zintegrowanego Terminala Visual Studio Code.

    W panelu EKSPLORATOR, aby otworzyć terminal w lokalizacji folderu TestProject, kliknij prawym przyciskiem myszy pozycję TestProject, a następnie wybierz polecenie Otwórz w zintegrowanym terminalu.

  3. W wierszu polecenia terminalu wprowadź polecenie dotnet run

  4. Sprawdź, czy kod generuje następujące dane wyjściowe:

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

    Jeśli kod wyświetla różne wyniki, musisz przejrzeć kod, aby znaleźć błąd i wprowadzić aktualizacje. Uruchom ponownie kod, aby sprawdzić, czy problem został rozwiązany. Kontynuuj aktualizowanie i uruchamianie kodu, dopóki kod nie generuje oczekiwanych wyników.

Podsumowanie

Poniżej przedstawiono informacje o parametrach do tej pory:

  • Informacje mogą być przekazywane do metod w postaci parametrów.
  • Parametry są deklarowane w podpisie metody.
  • Wiele parametrów jest rozdzielonych przecinkami.
  • Metody mogą akceptować argumenty o zmiennej wartości lub literały.