Exercício - Rever o código inicial

Concluído

Nesta primeira etapa do processo de desenvolvimento, você revisa o código fornecido na pasta do projeto Starter.

Revise o conteúdo do arquivo de Program.cs

O ficheiro Program.cs contém uma versão preliminar da aplicação em que está a trabalhar. O código inclui recursos para gerar e exibir os dados de exemplo para o aplicativo e exibe uma lista de opções de menu que definem os principais recursos do aplicativo.

  1. Certifique-se de que tem a pasta "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) aberta no Visual Studio Code.

    A unidade "Preparar" (a unidade anterior neste módulo) inclui uma seção de instalação que descreve o processo para baixar o ponto de partida inicial para o projeto guiado e abrir a pasta Visual Studio Code. Se necessário, volte e siga as instruções de configuração.

  2. Na visualização "EXPLORER", expanda a pasta "Starter" e selecione "Program.cs".

    Quando você seleciona o arquivo Program.cs, o conteúdo do arquivo é aberto na área principal do Editor à direita do EXPLORER.

    Se o modo de exibição EXPLORER não estiver aberto, você poderá selecionar/abrir o modo de exibição EXPLORER na barra de atividades no lado esquerdo do Visual Studio Code. EXPLORER é o ícone mais alto na barra de atividades.

  3. Reserve alguns minutos para revisar as declarações de variáveis iniciais na parte superior do arquivo de 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];
    

    Primeiro, você verá um comentário (comentário #1) seguido por uma lista de variáveis. Essas variáveis, de animalSpecies a animalNickname, usadas para armazenar os valores das características do animal de estimação dentro de uma matriz de strings multidimensional chamada ourAnimals, são inicializadas para conter uma string de comprimento zero "". A ourAnimals declaração de matriz está um pouco mais abaixo no código.

    O próximo grupo de variáveis (sob o comentário #2) é uma mistura de variáveis string e int usadas para ajudar a gerar dados de amostra, ler a entrada do utilizador e estabelecer critérios de saída para o ciclo principal do programa. Observe a linha string? readResult;de código . Use o ? caractere para transformar um tipo de variável normalmente não anulável (int, string, bool,...) com suporte para o tipo anulável.

    Observação

    Ao ler os valores inseridos pelo usuário com o Console.ReadLine() método, é melhor habilitar uma cadeia de caracteres de tipo anulável usando string? para evitar que o compilador de código gere um aviso quando você cria o projeto.

    A variável final (no comentário #3) é a matriz de cadeia de caracteres bidimensional chamada ourAnimals. Você inicializou o número de linhas, definido por maxPets, para 8. O número de características que você está armazenando inicialmente é seis. As seis características correspondem ao número de variáveis de cadeia de caracteres que você examinou no código de exemplo, mas o número de características precisa ser expandido para adicionar um campo para suggestedDonation.

  4. Percorra para baixo no arquivo Program.cs para examinar o loop for que contém uma estrutura de seleção switch no seu bloco de código.

    O exemplo de código é uma versão encurtada para economizar espaço.

    // #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 o for loop usa a maxPets variável para estabelecer um limite superior no número de iterações após o comentário # 4.

  6. Observe também que a switch estrutura ramifica seletivamente o código para que você possa definir diferentes características de animais de estimação para os animais de estimação no conjunto de dados de exemplo.

    Você usa uma switch instrução para definir valores diferentes para as quatro primeiras iterações do for loop. Após o processamento de dados de exemplo, todas as características são vazias ou cadeia de caracteres de comprimento zero.

    Os valores das variáveis características animais são atribuídos à matriz ourAnimals na parte inferior do for loop.

  7. Role até a parte inferior do arquivo de código no Visual Studio Code. Examine o código usado para exibir as opções do menu e capture a entrada da seleção do usuário.

    Você deve observar o seguinte código:

    // #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. Reserve um minuto para rever as duas case declarações.

    Há apenas duas opções de menu que funcionam com uma versão limitada do aplicativo. O aplicativo inicial fornece apenas os recursos necessários para executar e testar protótipos de recursos.

  9. Observe que a linha de código é readResult = Console.ReadLine(); seguida por uma verificação de um valor nulo.

    O código que utiliza o método Console.ReadLine() tem o valor definido como a cadeia de caracteres anulável readResult, para evitar que o compilador de código gere um aviso ao criar o projeto.

Verifique o seu trabalho

  1. Teste o aplicativo de console de código inicial, no prompt de comando TERMINAL build & execute o código do projeto com um comando digitando: dotnet run.

    Observação

    O prompt do TERMINAL deve ser aberto na pasta inicial e o TERMINAL deve ser semelhante a ..\ArrayGuidedProject\starter>

    Quando o código é executado, dois itens de menu são exibidos.

    • Digite: 1, para testar a saída "Listar todas as nossas informações atuais sobre animais de estimação"
    • Digite: 2, para testar a mensagem de espaço reservado "em construção"
  2. Digite: 1, seguido pressionando a tecla "Enter" para "exibir todos os animais de estimação".

  3. Verifique se todas as informações do animal de estimação são exibidas.

    À medida que você observa os dados de todos os animais de estimação, o último animal de estimação exibido deve corresponder à seguinte saída:

    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. Pressione a tecla Enter para continuar e retornar ao menu.

  5. No prompt do menu, entre 2 e depois pressione a tecla "Enter".

    Esta opção é um espaço reservado para a funcionalidade "Exibir todos os cães com uma característica especificada".

  6. Verifique se a mensagem UNDER CONSTRUCTION é exibida para a seleção de Display all dogs with a specified characteristic.

    Você deve observar a seguinte saída:

    UNDER CONSTRUCTION - please check back next month to see progress.
    Press the Enter key to continue.
    
  7. Digite exit, no menu do aplicativo, para encerrar o programa e feche o painel do terminal.

    O programa deve sair.

Agora você está pronto para começar a desenvolver os novos recursos.