Exercício - Rever o código inicial
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.
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.
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.
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
animalSpeciesaanimalNickname, usadas para armazenar os valores das características do animal de estimação dentro de uma matriz de strings multidimensional chamadaourAnimals, são inicializadas para conter uma string de comprimento zero"". AourAnimalsdeclaraçã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
stringeintusadas 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 linhastring? 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 usandostring?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 parasuggestedDonation.Percorra para baixo no arquivo Program.cs para examinar o loop
forque contém uma estrutura de seleçãoswitchno 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; }Observe que o
forloop usa amaxPetsvariável para estabelecer um limite superior no número de iterações após o comentário # 4.Observe também que a
switchestrutura 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
switchinstrução para definir valores diferentes para as quatro primeiras iterações doforloop. 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
forloop.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");Reserve um minuto para rever as duas
casedeclaraçõ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.
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ávelreadResult, para evitar que o compilador de código gere um aviso ao criar o projeto.
Verifique o seu trabalho
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"
- Digite:
Digite:
1, seguido pressionando a tecla "Enter" para "exibir todos os animais de estimação".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 continuePressione a tecla Enter para continuar e retornar ao menu.
No prompt do menu, entre
2e 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".
Verifique se a mensagem
UNDER CONSTRUCTIONé exibida para a seleção deDisplay 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.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.