Ejercicio: Uso de parámetros en métodos

Completado

Al crear métodos, a menudo querrá proporcionar información para que el método lo use. La información consumida por un método se denomina parámetro . Puede proporcionar tantos parámetros como sea necesario para realizar su tarea o ninguno en absoluto.

Los términos 'parameter' y 'argument' a menudo se usan indistintamente. Sin embargo, 'parameter' hace referencia a la variable en la firma del método. El 'argumento' es el valor pasado cuando se llama al método .

Adición de parámetros a métodos

Los parámetros de un método funcionan de forma similar a las variables. Un parámetro se define especificando el tipo de datos seguido del nombre del parámetro . Los parámetros se declaran en la firma del método y el llamador del método proporciona los valores de los parámetros en lugar de inicializarse dentro del propio método. Observe el código siguiente:

	CountTo(5);

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

En este ejemplo, el método CountTo acepta un parámetro entero denominado max. Se hace referencia al parámetro en el for bucle del método . Cuando CountTo se llama a , el entero 5 se proporciona como argumento.

En este ejercicio, aprenderá a crear y usar sus propios parámetros de método.

Preparación del entorno de creación de código

Este módulo incluye actividades prácticas que le guían por el proceso de compilación y ejecución de código de demostración. Se recomienda completar estas actividades con Visual Studio Code como entorno de desarrollo. El uso de Visual Studio Code para estas actividades le ayudará a familiarizarse con la escritura y la ejecución de código en un entorno de desarrollador que usan los profesionales de todo el mundo.

  1. Abre Visual Studio Code.

    Puede usar el menú Inicio de Windows (o un recurso equivalente para otro sistema operativo) para abrir Visual Studio Code.

  2. En Visual Studio Code, en el menú Archivo, seleccione Abrir archivo.

  3. En el cuadro de diálogo Abrir carpeta , vaya a la carpeta Escritorio de Windows.

    Si tiene una ubicación de carpeta diferente en la que mantiene los proyectos de código, puede usar esa ubicación de carpeta en su lugar. Durante este curso, lo importante es tener una ubicación fácil de localizar y recordar.

  4. En el cuadro de diálogo Abrir carpeta, elija Seleccionar carpeta.

    Si ve un cuadro de diálogo de seguridad en el que se le pregunta si confía en los autores, seleccione .

  5. En el menú Terminal de Visual Studio Code, seleccione Nuevo terminal.

    Observe que una ventana de comandos en el panel del Terminal muestra la ruta de acceso de la carpeta actual. Por ejemplo:

    C:\Users\someuser\Desktop>
    

    Nota:

    Si trabaja en su propio PC, en lugar de en un entorno aislado u hospedado, y si ha completado otros módulos de Microsoft Learn de esta serie de C#, es posible que ya haya creado una carpeta de proyecto para ejemplos de código. Si ese es el caso, puede saltar al paso siguiente, que se usa para crear una aplicación de consola en la carpeta TestProject.

  6. En la línea de comandos del terminal, para crear una nueva aplicación de consola en una carpeta especificada, escriba dotnet new console -o ./CsharpProjects/TestProject y presione Entrar.

    Este comando de la CLI de .NET usa una plantilla de programa de .NET para crear un nuevo proyecto de aplicación de consola de C# en la ubicación de carpeta especificada. El comando crea las carpetas CsharpProjects y TestProject automáticamente y usa TestProject como nombre del archivo .csproj.

  7. En el panel EXPLORADOR, expanda la carpeta CsharpProjects.

    Debería ver la carpeta TestProject y dos archivos, un archivo de programa de C# llamado Program.cs y un archivo de proyecto de C# llamado TestProject.csproj.

  8. En el panel EXPLORADOR, para ver el archivo de código en el panel Editor, seleccione Program.cs.

  9. Elimine las líneas de código existentes.

    Usará este proyecto de consola de C# para crear, compilar y ejecutar ejemplos de código durante este módulo.

  10. Cierre el panel del terminal.

Creación de un método con parámetros

En esta tarea, creará un método que ajusta las horas programadas a una zona horaria GMT diferente. El método debe aceptar una lista de horas, la zona horaria actual y la nueva zona horaria. ¡Comencemos!

  1. En el Editor de Visual Studio Code, escriba el código siguiente:

    int[] schedule = {800, 1200, 1600, 2000};
    
  2. Para crear un método con parámetros, escriba el código siguiente en una nueva línea en blanco:

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

    Observe que los parámetros se declaran de forma similar a la forma en que se declaran variables, mediante el tipo de datos seguido del nombre de la variable. Puede usar parámetros de cualquier tipo de datos, como string, bool, , intmatrices, etc. Varios parámetros de un método siempre están separados por comas.

  3. Escriba el código siguiente en el DisplayAdjustedTimes método :

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

    Observe cómo no tiene que declarar las variables newGMT y currentGMT , dado que ya están declaradas en la firma del método. Tampoco inicializa las variables, ya que el método supone que el autor de la llamada proporciona esos argumentos con valores asignados.

    En este paso, creará int diff para almacenar la diferencia horaria y, a continuación, comprobará que los valores GMT proporcionados están entre -12 y 12. El uso Math.Abs proporciona el valor absoluto de un número, por lo que los valores GMT no son válidos si son mayores que 12.

  4. Para calcular la diferencia horaria, actualice el método de la DisplayAdjustedTimes siguiente manera:

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

    En este código, comprobará si necesita agregar o restar los valores absolutos de las zonas horarias GMT para obtener la diferencia en horas. Si los valores GMT comparten el mismo signo (ambos positivos o ambos negativos), la diferencia de horas es igual a la diferencia entre los dos números. Si los valores GMT tienen signos opuestos, la diferencia es igual a la suma de los dos números. Puesto que las horas se representan en cientos, se multiplica el resultado en 100.

  5. Para mostrar los resultados, escriba el código siguiente al final del DisplayAdjustedTimes método :

    for (int i = 0; i < times.Length; i++) 
    {
        int newTime = (times[i] + diff) % 2400;
        Console.WriteLine($"{times[i]} -> {newTime}");
    }
    
  6. Para llamar al método, escriba el código siguiente después de la declaración de int[] schedule variable:

    DisplayAdjustedTimes(schedule, 6, -6);
    

    Observe que tanto las variables como los literales se pueden proporcionar como argumentos a un método. Mediante el uso de parámetros de entrada, el método no está restringido a usar los valores de las variables globales.

Comprobación del trabajo

En esta tarea, ejecutará la aplicación desde el terminal integrado y comprobará que el código funciona correctamente. Comencemos.

  1. Guarde el trabajo con Ctrl + S o con el menú Archivo de Visual Studio Code.

  2. Si es necesario, abra el panel del terminal integrado de Visual Studio Code.

    En el panel EXPLORER, para abrir un terminal en la ubicación de la carpeta TestProject, haga clic con el botón derecho en TestProject y, a continuación, seleccione Abrir en terminal integrado.

  3. En la línea de comandos de Terminal, escriba dotnet run

  4. Compruebe que el código genera la salida siguiente:

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

    Si el código muestra resultados diferentes, deberá revisarlo para encontrar el error y realizar las actualizaciones correspondientes. Vuelva a ejecutar el código para ver si ha corregido el problema. Continúe actualizando y ejecutando el código hasta que genere los resultados esperados.

Resumen

Esto es lo que ha aprendido sobre los parámetros hasta ahora:

  • La información se puede pasar a métodos en forma de parámetros.
  • Los parámetros se declaran en la firma del método.
  • Varios parámetros están separados por comas.
  • Los métodos pueden aceptar argumentos literales o variables.