Ejercicio: Revisión del código de inicio

Completado

En este primer paso del proceso de desarrollo, revisará el código proporcionado en la carpeta del proyecto starter.

Revisión del contenido del archivo Program.cs

El archivo Program.cs contiene una versión preliminar de la aplicación en la que está trabajando. El código incluye características para generar y mostrar los datos de ejemplo de la aplicación y muestra una lista de opciones de menú que definen las características principales de la aplicación.

  1. Asegúrese de que tiene abierta la carpeta "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) en Visual Studio Code.

    La unidad "Preparar" (la unidad anterior de este módulo) incluye una sección setup que describe el proceso para descargar el punto inicial inicial del proyecto guiado y abrir la carpeta Visual Studio Code. Si es necesario, vuelva atrás y siga las instrucciones de instalación.

  2. En la vista "EXPLORER", expanda la carpeta "Starter" y seleccione "Program.cs".

    Al seleccionar el archivo Program.cs, el contenido del archivo se abre en el área editor principal a la derecha del EXPLORADOR.

    Si la vista EXPLORER no está abierta, puede seleccionar o abrir la vista EXPLORER desde la barra de actividad en el lado izquierdo de Visual Studio Code. EXPLORER es el icono más alto de la barra de actividad.

  3. Dedique unos minutos a revisar las declaraciones de variables iniciales en la parte superior del archivo Program.cs.

    // #1 the ourAnimals array will store the following: 
    string animalSpecies = "";
    string animalID = "";
    string animalAge = "";
    string animalPhysicalDescription = "";
    string animalPersonalityDescription = "";
    string animalNickname = "";
    
    // #2 variables that support data entry
    int maxPets = 8;
    string? readResult;
    string menuSelection = "";
    
    // #3 array used to store runtime data, there is no persisted data
    string[,] ourAnimals = new string[maxPets, 6];
    

    En primer lugar, verá un comentario (comentario n.º 1) seguido de una lista de variables. Estas variables, de animalSpecies a animalNickname, se utilizan para almacenar los valores de las características de las mascotas dentro de un array multidimensional de cadenas denominado ourAnimals e inicializado para contener una cadena de longitud cero "". La ourAnimals declaración de matriz está un poco más abajo en el código.

    El siguiente grupo de variables (en el comentario n.º 2) es una combinación de string variables y int que se usan para ayudar a generar datos de ejemplo, leer la entrada del usuario y establecer criterios de salida para el bucle de programa principal. Observe la línea string? readResult;de código . Usted usa el ? carácter para transformar un tipo de variable que normalmente no acepta valores NULL (int, string, bool,...) para que sea compatible con el tipo que sí acepta valores NULL.

    Nota:

    Al leer los valores especificados por el usuario con el Console.ReadLine() método , es mejor habilitar una cadena de tipo que acepta valores NULL mediante string? para evitar que el compilador de código genere una advertencia al compilar el proyecto.

    La variable final (en el comentario 3) es la matriz de cadenas bidimensionales denominada ourAnimals. Inicializó el número de filas, definidas por maxPets, en 8. El número de características que está almacenando inicialmente es seis. Las seis características coinciden con el número de variables de cadena que ha examinado en el código de ejemplo, pero el número de características debe expandirse para agregar un campo para suggestedDonation.

  4. Desplácese hacia abajo en el archivo Program.cs para examinar el bucle for que contiene una construcción de selección switch dentro de su bloque de código.

    El ejemplo de código es una versión abreviada para ahorrar espacio.

    // #4 create sample data ourAnimals array entries
    for (int i = 0; i < maxPets; i++)
    {
        switch (i)
        {
            case 0:
                animalSpecies = "dog";
                animalID = "d1";
                animalAge = "2";
                animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken.";
                animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.";
                animalNickname = "lola";
                break;
    
            case 1:
                animalSpecies = "dog";
                animalID = "d2";
                animalAge = "9";
                animalPhysicalDescription = "large reddish-brown male golden retriever weighing about 85 pounds. housebroken.";
                animalPersonalityDescription = "loves to have his ears rubbed when he greets you at the door, or at any time! loves to lean-in and give doggy hugs.";
                animalNickname = "gus";
                break;
    
            // case 2: deleted for brevity
            // case 3: deleted for brevity
    
            default:
                animalSpecies = "";
                animalID = "";
                animalAge = "";
                animalPhysicalDescription = "";
                animalPersonalityDescription = "";
                animalNickname = "";
                break;
        }
        ourAnimals[i, 0] = "ID #: " + animalID;
        ourAnimals[i, 1] = "Species: " + animalSpecies;
        ourAnimals[i, 2] = "Age: " + animalAge;
        ourAnimals[i, 3] = "Nickname: " + animalNickname;
        ourAnimals[i, 4] = "Physical description: " + animalPhysicalDescription;
        ourAnimals[i, 5] = "Personality: " + animalPersonalityDescription;
    }
    
  5. Observe que el for bucle usa la maxPets variable para establecer un límite superior en el número de iteraciones siguientes al comentario n.º 4.

  6. Observe también que la switch construcción bifurca selectivamente el código para que pueda definir diferentes características de mascotas para las mascotas en el conjunto de datos de ejemplo.

    Use una switch instrucción para definir valores diferentes para las cuatro primeras iteraciones del for bucle. Después del procesamiento de los datos de ejemplo, todas las características son cadenas vacías o de longitud cero.

    Los valores de las variables de características animales se asignan a la matriz ourAnimals en la parte inferior del for bucle.

  7. Desplácese hasta la parte inferior del archivo de código en Visual Studio Code. Examine el código usado para mostrar las opciones de menú y capture la entrada de la selección del usuario.

    Debe observar el código siguiente:

    // #5 display the top-level menu options
    do
    {
        // NOTE: the Console.Clear method is throwing an exception in debug sessions
        Console.Clear();
    
        Console.WriteLine("Welcome to the Contoso PetFriends app. Your main menu options are:");
        Console.WriteLine(" 1. List all of our current pet information");
        Console.WriteLine(" 2. Display all dogs with a specified characteristic");
        Console.WriteLine();
        Console.WriteLine("Enter your selection number (or type Exit to exit the program)");
    
        readResult = Console.ReadLine();
        if (readResult != null)
        {
            menuSelection = readResult.ToLower();
        }
    
        // use switch-case to process the selected menu option
        switch (menuSelection)
        {
            case "1":
                // list all pet info
                for (int i = 0; i < maxPets; i++)
                {
                    if (ourAnimals[i, 0] != "ID #: ")
                    {
                        Console.WriteLine();
                        for (int j = 0; j < 6; j++)
                        {
                            Console.WriteLine(ourAnimals[i, j]);
                        }
                    }
                }
                Console.WriteLine("\n\rPress the Enter key to continue");
                readResult = Console.ReadLine();
                break;
    
            case "2":
                // Display all dogs with a specified characteristic");
                Console.WriteLine("\nUNDER CONSTRUCTION - please check back next month to see progress.");
                Console.WriteLine("Press the Enter key to continue.");
                readResult = Console.ReadLine();
                break;
    
            default:
                break;
        }
    
    } while (menuSelection != "exit");
    
  8. Dedique un minuto a revisar las dos case declaraciones.

    Solo hay dos opciones de menú que funcionan con una versión limitada de la aplicación. La aplicación de inicio solo proporciona las funcionalidades necesarias para ejecutar y probar el prototipo de características.

  9. Observe que la línea de código va readResult = Console.ReadLine(); seguida de una comprobación de un valor NULL.

    El código que utiliza el método Console.ReadLine() tiene el valor asignado como cadena anulable readResult para evitar que el compilador genere una advertencia cuando se construye el proyecto.

Revisa tu trabajo

  1. Pruebe la aplicación de consola de código de inicio; en el símbolo del sistema del TERMINAL, compile y ejecute el código del proyecto con un comando escribiendo: dotnet run.

    Nota:

    El indicador del terminal debe abrirse en la carpeta de inicio y el terminal debe tener un aspecto similar al siguiente: ..\ArrayGuidedProject\starter>

    Cuando se ejecuta el código, se muestran dos elementos de menú.

    • Introduzca: 1, para probar el resultado "Listar toda la información actual sobre nuestras mascotas"
    • Escriba: 2, para probar el mensaje de marcador de posición "en construcción"
  2. Escriba: 1, seguido de presionar la tecla "Entrar" para "mostrar todas las mascotas".

  3. Compruebe que se muestra toda la información sobre las mascotas.

    Al observar los datos de todas las mascotas, la última mascota mostrada debe coincidir con la siguiente salida:

    ID #: c4
    Species: cat
    Age: 3
    Nickname: Lion
    Physical description: Medium sized, long hair, yellow, female, about 10 pounds. Uses litter box.
    Personality: A people loving cat that likes to sit on your lap.
    
    Press the Enter key to continue
    
  4. Presione la tecla Entrar para continuar y volver al menú.

  5. En el símbolo del menú, escriba 2 seguido de presionar la tecla "Entrar".

    Esta opción es un elemento de reserva para la funcionalidad de "Mostrar todos los perros con una característica especificada".

  6. Compruebe que el UNDER CONSTRUCTION mensaje se muestra para la Display all dogs with a specified characteristic selección.

    Debemos observar la siguiente salida:

    UNDER CONSTRUCTION - please check back next month to see progress.
    Press the Enter key to continue.
    
  7. Escriba exit, en el menú de la aplicación, para finalizar el programa y cerrar el panel del terminal.

    El programa debe cerrarse.

Ahora está listo para empezar a desarrollar las nuevas funcionalidades.